SRS_Final - bounswe/bounswe2025group7 GitHub Wiki
๐งฉ Software Requirements Specification (SRS)
Project Title: HeatH โ Affordable and Healthy Eating Hub
Date: 7 October 2025
Team: bounswe2025group7
Tech Stack: Java Spring Boot ยท PostgreSQL ยท React / React Native
1. Introduction
1.1 Purpose
This document specifies the software requirements for HeatH โ Affordable and Healthy Eating Hub, a web and mobile platform promoting affordable, nutritious meal planning and personalized recommendations.
It defines the functional and non-functional requirements, ethical considerations, accessibility standards, and data protection mechanisms to ensure inclusivity and interoperability.
1.2 Scope
HeatH supports three primary user groups:
- Regular Users: create profiles, plan meals, and track affordability and nutrition.
- Administrators: ensure data accuracy, monitor content, and maintain compliance.
Core features:
- Smart Calorie And Cost Calculator for recipes
- Recipe Sharing with social interactions
- Feed Page posting posts, adding comments to posts, saving posts.
1.3 Definitions and Acronyms
| Term |
Definition |
| W3C |
World Wide Web Consortium |
| WCAG |
Web Content Accessibility Guidelines |
| JSON-LD |
JavaScript Object Notation for Linked Data |
| GDPR |
General Data Protection Regulation |
| ActivityStreams |
W3C standard for expressing social activities in JSON-LD |
1.4 References
2. Overall Description
2.1 Product Perspective
HeatH integrates web and mobile interfaces using a RESTful API.
All user-generated activities (e.g., posting recipes, liking) follow the W3C ActivityStreams 2.0 model for interoperability.
2.2 User Classes and Characteristics
| User Type |
Description |
Access Level |
| Regular User |
Can register, plan meals, and post/like/save meals |
Basic |
| Administrator |
Manages data integrity, security, and compliance |
Full |
2.3 Operating Environment
- Frontend: React (web) / React Native (mobile)
- Backend: Spring Boot REST API
- Database: PostgreSQL, MongoDB
- Hosting: Deployed via CI/CD on GCP
2.4 Design and Implementation Constraints
- Must comply with W3C Accessibility and GDPR standards
- Follows RESTful architecture and JSON-LD data format
- Uses open-source frameworks with permissive licenses
3. System Features and Requirements
3.1 Functional Requirements
3.1.1 User Management
| ID |
Requirement |
Priority |
| 3.1.1.1 |
Users shall create, edit, and delete profiles. |
High |
| 3.1.1.2 |
The system shall support both English and Turkish UIs. |
Medium |
3.1.2 Recipe Management
| ID |
Requirement |
Priority |
| 3.1.2.1 |
The system shall allow recipe creation, editing, and sharing. |
High |
| 3.1.2.2 |
The system shall recommend recipes based on preferences, dietary restrictions, and ingredient availability. |
High |
3.1.3 Meal Planning and Recommendation
| ID |
Requirement |
Priority |
| 3.1.3.1 |
The system shall recommend meals based on nutrition goals. |
High |
| 3.1.3.2 |
The system shall calculate meal affordability based on user budget. |
High |
3.1.4 Social Interaction
| ID |
Requirement |
Priority |
| 3.1.4.1 |
Users shall like, comment, and follow other users' posts using ActivityStreams JSON-LD. |
Medium |
| 3.1.4.2 |
All actions shall generate ActivityStream events for interoperability. |
Medium |
3.1.5 Semantic Search and Discovery
| ID |
Requirement |
Priority |
| 3.1.5.1 |
The system shall support semantic search across recipes, posts, and meal plans using natural language queries. |
High |
| 3.1.5.2 |
The search engine shall leverage metadata from JSON-LD to improve contextual accuracy and entity linking. |
High |
| 3.1.5.3 |
Semantic relationships (e.g., ingredient โ nutrient โ recipe) shall be stored in a knowledge graph for efficient retrieval. |
Medium |
3.2 Non-Functional Requirements
| Category |
Requirement |
| Usability |
Interfaces shall comply with WCAG 2.1 standards, including contrast ratio, keyboard navigation, and ARIA labels for accessibility. |
| Security |
All data shall be encrypted using TLS 1.3 in transit and AES-256 at rest. |
| Performance |
The system shall respond to 95% of user requests within 2 seconds under normal load conditions. |
| Reliability |
The system shall maintain 99.5% uptime and provide automated database backup replication. |
| Ethics & Privacy |
Users must provide explicit consent for data processing and have the right to delete their data at any time. |
| Interoperability |
The system shall use JSON-LD schemas to ensure compatibility with external health and nutrition data APIs. |
4. External Interface Requirements
4.1 User Interface
- Color palette meets WCAG contrast ratio โฅ 4.5:1.
- Alt text provided for all media.
- Dynamic font scaling for accessibility.
- Multi-language toggle (English โ Turkish).
4.2 API Interfaces
All requests use JSON-LD syntax with proper @context and @type fields.
Endpoints follow ActivityStreams semantics for event logging:
POST /api/activity/create
POST /api/activity/like
GET /api/activities/{userId}
4.3 Hardware Interfaces
Standard web browsers and mobile devices (iOS/Android โฅ 12).
4.4 Communication Interfaces
HTTPS RESTful communication, JWT-based authentication, OAuth2 login (Google/Facebook optional).
5. Ethics, Data Protection, and Accessibility
5.1 Data Protection
- Compliance: GDPR + KVKK (Turkey)
- Principles: Minimal data collection, encryption, anonymization, explicit consent
- Storage: PostgreSQL with role-based access and hashed credentials
5.2 Ethical Use
- No bias in recommendations โ algorithm audited regularly.
- Nutritionists verified manually to ensure trustworthy content.
- Clear distinction between sponsored and organic content.
5.3 Accessibility (W3C WCAG 2.1)
| Principle |
Example Implementation |
| Perceivable |
Text alternatives for all media |
| Operable |
Full keyboard navigation and gesture support |
| Understandable |
Consistent layout and language toggle |
| Robust |
Compatible with assistive technologies (screen readers) |
6. Future Enhancements
- Integration with FatSecret for verified nutrition data.
- Implementation of the mobile application
- Expansion of semantic search with embeddings for recipe discovery.
7. Traceability Matrix
| User Need |
Requirement ID |
Implementation Reference |
| Track nutrition goals |
FR-3 |
/recommendations endpoint |
| Share and comment on recipes |
FR-2, FR-6 |
/recipes module |
| Affordable meals |
FR-5 |
/affordability calculator |
| Semantic search for recipes |
3.1.6.1 |
/semantic-search module |
8. Appendices