# Task Assignment for the Project
This task list provides a comprehensive breakdown of all required steps to complete the project, starting with initial progress tasks to showcase to the client.
---
## **Phase 1: Initial Progress Showcase**
### 1. Project Setup (Day 1 - Day 2)
- [x] **Set up Monorepo**
- Initialize the monorepo using tools like `Nx` or `Turborepo`.
- Create folders for `backend` and `frontend` projects.
- [x] **Define Tech Stack**
- Finalize stack: Node.js, Express.js, React (web), PostgreSQL.
- Install dependencies and set up ESLint, Prettier, and Husky.
### 2. Database Configuration (Day 3)
- [x] **Create Database**
- Implement database schema for initial features: Users, Products, and Sales.
- Use tools like `Prisma` or `Sequelize` for ORM.
- Set up PostgreSQL locally and test connections.
### 3. Backend API Development (Day 4 - Day 5)
- [x] **Authentication Module**
- Implement user registration, login, and JWT-based authentication.
- [x] **Inventory Management APIs**
- CRUD operations for products.
### 4. Frontend Development (Day 6 - Day 7)
- [ ] **Set up React Project**
- Create the initial React project structure.
- Integrate `React Router` for navigation.
- [ ] **Develop Initial Pages**
- **Login/Registration Page**: Connect to authentication API.
- **Dashboard Page**: Display inventory details using dummy data.
- **Product Management Page**: Add a form to create and view products.
### 5. Testing Initial Features (Day 8)
- [ ] Test backend API endpoints using `Postman` or `Swagger`.
- [ ] Test the frontend pages and API integration.
---
## **Phase 2: Full Development**
### 6. Database Expansion (Day 9 - Day 10)
- [ ] Add remaining tables: Purchases, Bills, Reports.
- [ ] Update relationships and test schema.
### 7. Backend Development (Day 11 - Day 15)
- [ ] Complete Inventory Management APIs.
- [ ] Build Billing Module APIs.
- [ ] Implement Reports Module APIs.
### 8. Frontend Development (Day 16 - Day 20)
- [ ] Develop Dashboard with real-time data.
- [ ] Add Billing and Reports pages.
- [ ] Integrate APIs with frontend.
---
## **Phase 3: Mobile App Development**
### 9. Mobile App Setup and Development (Day 21 - Day 25)
- [ ] Initialize React Native project.
- [ ] Implement login, inventory management, and billing features.
---
## **Phase 4: Final Testing and Deployment**
### 10. Final Testing (Day 26 - Day 28)
- [ ] Test web app and mobile app on multiple devices.
- [ ] Fix bugs and optimize performance.
### 11. Deployment (Day 29 - Day 30)
- [ ] Deploy APIs using AWS or Vercel.
- [ ] Deploy web app using `Vercel` or `Netlify`.
- [ ] Publish the mobile app using Expo Go or Play Store.
---
## Summary Timeline
- **Phase 1**: Day 1 - Day 8 (Initial Progress Showcase)
- **Phase 2**: Day 9 - Day 20
- **Phase 3**: Day 21 - Day 25
- **Phase 4**: Day 26 - Day 30
---
This updated timeline prioritizes completing 2-3 key pages and their backend logic for the client demonstration. Adjust based on progress and feedback.Next Steps [x]Create the Login/Registration page and connect it to the backend authentication API.
[]Test the Login and Registration pages to ensure they are correctly connected to the backend authentication API.
[]Handle authentication state (e.g., storing the token, redirecting authenticated users).
[]Design the Dashboard page with dummy data.
[]Implement the Inventory Management page with product list, add product form, and search/filter options.