Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Byte me Byte me
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 5
    • Issues 5
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • JuvrajSingh.-
  • Byte meByte me
  • Wiki
  • Deliverable 3
  • System Architecture

System Architecture · Changes

Page history
Update System Architecture authored Apr 09, 2025 by Wenjun.Chen's avatar Wenjun.Chen
Hide whitespace changes
Inline Side-by-side
Deliverable-3/System-Architecture.md
View page @ 5ae462a3
## Diagram Draw.io
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.
**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:
- Log in and register securely
- Manage grocery inventory
......@@ -12,7 +12,7 @@ The client is built using React Native and runs on both Android and iOS platform
- Receive AI generated recipe suggestions
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:
- /users: Handles login, registration, and password reset
- /group: Manages group creation, joining, leaving, and ownership transfer
......@@ -21,8 +21,8 @@ These endpoints are organized under a RESTful architecture, simplifying integrat
- Email based password verification using Nodemailer
- AI recipe querying
- 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:
- users: Account data, BMI, preferences
- groups: Group metadata and member mapping
......@@ -30,10 +30,10 @@ All data is persistently stored in a MongoDB database with the help of Mongoose
- logs: Food consumption and financial records
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:
- 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 |
| ------ | ------ |
......
Clone repository
  • Deliverable 2
    • Requirements Statement
    • UML Class Model
    • Use Case Descriptions and Scenarios
    • Use Case Model
  • Deliverable 3
    • Final Document
      • Challenges and How We Solved Them
      • Key summary of all participants
      • Video Link
    • System Architecture
    • Updated Class diagram
    • Updated Use case Diagram
  • Functional Properties
  • Participation Journal
View All Pages