Requirement Specification - VikRic/MealPlanner GitHub Wiki

1. Functional Requirements

This section describes use cases that summarize functional requirements found in the backlog.

📄 Use Case – Create Meal Plan

  • Actor: Logged-in user

  • Goal: Create a weekly meal plan based on preferences and allergies

  • Scenario:

    1. The user enters any allergies and preferences.

    2. The system generates a meal suggestion using the Spoonacular API.

    3. The user saves the plan to their profile.

    4. A shopping list is generated based on the plan.

  • Related Requirements: 001, 002, 003, 006, 007, 008, 009, 010


2. Non-Functional Product Requirements

🔧 Quality Requirements

Requirement Description Testability
Availability The application should be accessible via modern browsers. Manually tested in multiple browsers.
Performance Recipes should load within 2 seconds. Measure load time using browser dev tools.
Usability The UI should be clear with intuitive navigation. User testing and feedback.
Security Login and registration should protect user data. Test session handling and password hashing.
Error Handling Error messages should appear when API requests fail. Simulate failures and verify user feedback.

3. Non-Functional Organizational Requirements

3.1 🔄 Version Control

  • Strategy: Git with GitHub as remote repository
  • Workflow: Git Flow model
    • main = stable releases
    • Feature branches for new functionality

3.2 🧑‍💻 Code Standards

  • Language: JavaScript (Node.js, React)
  • Style Guide: ESLint with LNU configuration
  • Exceptions: Inline styling is used in some components for rapid prototyping instead of CSS modules.

3.3 📚 Code Documentation

  • Internal documentation: JSDoc comments for functions and components

4. Non-Functional External Requirements

4.1 ⚖️ Ethical Requirements

  • Risk Analysis: Incorrect recipes can lead to allergic reactions. Allergy filtering must work correctly.
  • Ethical Reflection: The app helps reduce food waste.
  • Environmental Aspect: Planning and generating shopping lists reduce spontaneous purchases and food waste.

4.2 ⚖️ Legal & Standards Compliance

  • Personal Data: Only email and password are stored, encrypted using Clerk.
  • GDPR Compliance:
    • Users can delete their accounts (and all associated data) via account settings.