|
## Diagram Draw.io
|
|
## Diagram Draw.io
|
|
https://drive.google.com/file/d/1U3z9awKPSR87_BAfbhGwMDf_M8W0wWpE/view?usp=sharing
|
|
https://drive.google.com/file/d/1U3z9awKPSR87_BAfbhGwMDf_M8W0wWpE/view?usp=sharing
|
|
**System Architecture Discussion**
|
|
**System Architecture Discussion**
|
|
The Smart Grocery Management Mobile App adopts a modular and scalable architecture consisting of four main layers: **Client Devices, Backend Server, Database, and External Services**. This structure ensures a clear separation of concerns, high maintainability, and strong support for collaborative and intelligent grocery management features.
|
|
The Smart Grocery Management Mobile App adopts a modular and scalable architecture consisting of four main layers: **Client Devices, Backend Server, Database, and External Services**. This structure ensures a clear separation of concerns, high maintainability, and strong support for collaborative and intelligent grocery management features.
|
|
|
|
|
|
**Client Devices (Mobile App)**
|
|
**Client Devices (Mobile App)**
|
|
The client is built using React Native and runs on both Android and iOS platforms via Expo Go. It allows users to:
|
|
The client is built using React Native and runs on both Android and iOS platforms via Expo Go. It allows users to:
|
|
- Log in and register securely
|
|
- Log in and register securely
|
|
- Manage grocery inventory
|
|
- Manage grocery inventory
|
... | @@ -12,7 +12,7 @@ The client is built using React Native and runs on both Android and iOS platform |
... | @@ -12,7 +12,7 @@ The client is built using React Native and runs on both Android and iOS platform |
|
- Receive AI generated recipe suggestions
|
|
- Receive AI generated recipe suggestions
|
|
The app communicates with the backend using HTTPS and JSON via REST API, ensuring secure and standardized data exchange.
|
|
The app communicates with the backend using HTTPS and JSON via REST API, ensuring secure and standardized data exchange.
|
|
|
|
|
|
**Backend Server (Node.js/Express)**
|
|
**Backend Server (Node.js/Express)**
|
|
The backend uses Node.js with Express to expose REST API endpoints for:
|
|
The backend uses Node.js with Express to expose REST API endpoints for:
|
|
- /users: Handles login, registration, and password reset
|
|
- /users: Handles login, registration, and password reset
|
|
- /group: Manages group creation, joining, leaving, and ownership transfer
|
|
- /group: Manages group creation, joining, leaving, and ownership transfer
|
... | @@ -21,8 +21,8 @@ These endpoints are organized under a RESTful architecture, simplifying integrat |
... | @@ -21,8 +21,8 @@ These endpoints are organized under a RESTful architecture, simplifying integrat |
|
- Email based password verification using Nodemailer
|
|
- Email based password verification using Nodemailer
|
|
- AI recipe querying
|
|
- AI recipe querying
|
|
- Calorie and BMI analysis
|
|
- Calorie and BMI analysis
|
|
-
|
|
|
|
**Database (MongoDB via Mongoose)**
|
|
**Database (MongoDB via Mongoose)**
|
|
All data is persistently stored in a MongoDB database with the help of Mongoose for schema validation and object modeling. Collections include:
|
|
All data is persistently stored in a MongoDB database with the help of Mongoose for schema validation and object modeling. Collections include:
|
|
- users: Account data, BMI, preferences
|
|
- users: Account data, BMI, preferences
|
|
- groups: Group metadata and member mapping
|
|
- groups: Group metadata and member mapping
|
... | @@ -30,10 +30,10 @@ All data is persistently stored in a MongoDB database with the help of Mongoose |
... | @@ -30,10 +30,10 @@ All data is persistently stored in a MongoDB database with the help of Mongoose |
|
- logs: Food consumption and financial records
|
|
- logs: Food consumption and financial records
|
|
This design allows flexible schema evolution and efficient querying, supporting features like group synchronization and historical analytics
|
|
This design allows flexible schema evolution and efficient querying, supporting features like group synchronization and historical analytics
|
|
|
|
|
|
**External Services**
|
|
**External Services**
|
|
Two external APIs enhance app intelligence and communication:
|
|
Two external APIs enhance app intelligence and communication:
|
|
- Gmail SMTP (via Nodemailer): Used to send 6 digit verification codes for password reset. This ensures secure identity validation
|
|
- Gmail SMTP (via Nodemailer): Used to send 6 digit verification codes for password reset. This ensures secure identity validation
|
|
- Spoonacular API: Allows the backend to generate intelligent meal suggestions based on real time inventory and nutritional goals
|
|
- Spoonacular API: Allows the backend to generate intelligent meal suggestions based on real time inventory and nutritional goals
|
|
|
|
|
|
| Attribute | Architectural Support |
|
|
| Attribute | Architectural Support |
|
|
| ------ | ------ |
|
|
| ------ | ------ |
|
... | | ... | |