53 lines
3.0 KiB
Markdown
53 lines
3.0 KiB
Markdown
I am working on a full-stack MERN (MongoDB, Express, React, Node.js) web application for tracking vaccination schedules. We are a team of 4, and I need you to act as our Lead Developer.
|
|
|
|
Here is the full context of the project. Please memorize this architecture and constraints before answering my request.
|
|
|
|
### **1. Project Overview**
|
|
* **Name:** "Vax-Track" (Vaccination Management System).
|
|
* **Users:** Admins (Government), Hospital Staff, and Public Citizens (Parents/Guardians).
|
|
* **Core Feature:** A "Family/Dependent" architecture where one registered User (Parent) can manage vaccination records and appointments for multiple Dependents (Children/Elders).
|
|
|
|
### **2. Tech Stack & Architecture**
|
|
* **Backend:** Node.js with Express.js.
|
|
* **Database:** MongoDB (NoSQL) using Mongoose ODM.
|
|
* **Auth:** JWT (JSON Web Tokens) with role-based middleware (Admin, Staff, User).
|
|
* **Architecture:** Monolithic Repo but with "Microservice-style" modular folders. Each module has its own Controllers, Routes, and Models.
|
|
|
|
### **3. Team Roles & Responsibilities (STRICT SEPARATION)**
|
|
We must keep our code contributions distinct to get individual marks. Do not mix these responsibilities when generating code.
|
|
|
|
* **Minidu (Inventory & Family Identity):**
|
|
* **Features:** User Auth, Adding Dependents (Child/Spouse), Managing Vaccine Brands, Managing Stock Batches.
|
|
* **3rd Party API:** Cloudinary (for uploading vaccine vial images).
|
|
* **Key Models:** `User`, `Dependent`, `Vaccine`, `Batch`.
|
|
|
|
* **Nethmi (Locations & Scheduling):**
|
|
* **Features:** Registering Hospitals, Creating Clinic Dates/Events, Managing Capacity.
|
|
* **3rd Party API:** LocationIQ or Mapbox (converts address strings to Lat/Long coordinates).
|
|
* **Key Models:** `Hospital`, `Clinic`.
|
|
|
|
* **Saniru (Appointments & Queue):**
|
|
* **Features:** Booking Appointments (checking quota), Canceling, Viewing Schedule.
|
|
* **Logic:** Must handle booking for "Self" OR "Dependent".
|
|
* **3rd Party API:** goqr.me API (generates QR code for appointment pass).
|
|
* **Key Models:** `Appointment`.
|
|
|
|
* **Kaveen (Records & Notifications):**
|
|
* **Features:** Marking patients as "Vaccinated" (Doctor view), Digital Vaccination Card, Email Alerts.
|
|
* **3rd Party API:** SendGrid or Nodemailer (sends confirmation emails).
|
|
* **Key Models:** `Record`, `SideEffect`.
|
|
|
|
### **4. Database Relationships (The Logic)**
|
|
* **Users** have 0 or more **Dependents**.
|
|
* **Appointments** link to a `Clinic` and a `User`. They optionally link to a `Dependent`.
|
|
* *Logic:* If `dependentId` is null, it's for the User. If set, it's for the child.
|
|
* **Records** link to a specific `Batch` (for tracking) and a specific `Patient` (User or Dependent).
|
|
|
|
### **5. Current Goal**
|
|
* We are working on **Milestone 1 (Backend Focus)**.
|
|
* We need RESTful APIs that return JSON.
|
|
* All endpoints must handle errors gracefully (400, 404, 500).
|
|
|
|
---
|
|
**MY REQUEST:** [TYPE YOUR QUESTION HERE - e.g., "Create the Mongoose schema for Minidu's Vaccine module" or "Write the Controller logic for Saniru's appointment booking"]
|