# Project 1 : Tasks Maintainance ### Aim To build an application where task can be assigned to members, tracked and kept record of. ### Data model 1. `Members` : Member model is already made in our DB 2. `Tasks` : Data model will look like - Task name - Task desc - Task status - Task author - Task assigned to - Task watchers - Task discussion thread - Task assigned date-time - Task due date-time - Task submission date-time - Task notification frequency You can add any more data fields if you feel like adding. ### API Build a design architecture for API how to manage the task. What we need? - Add task - Edit task (can be individual field or multiple) - Delete task - View task - Send notifications (for now via email) to watchers, assignees and assigned oncestatus gets changed. - Schedule notifications so that assigned memebers get notified. - Schedule an email notification if an user recieves discussion chat in the thread. Thinks to be kept in mind: 1. Data passing through backend must be validated first before going into DB 2. Response codes should be maintained properly. If error occurs, right reason for the error must be put into response ### Frontend React project should be created. Should look like taskade (task) / clickup (task) ### Tools to be used 1. ExpressJS 2. ReactJS 3. MongoDB 4. GitHub 5. Postman ### Things to be kept in mind 1. Project should should have three envs - Local - Staging - Production 2. So build the env files according to selected envs 3. **GITHUB RULES** : Master branch of github ought not to be used for direct push of the code. Create a branch for each feature you are building. Once a code is done push the code in tha branch and create a Pull Request(PR) to be apporved by seniors. Once that is done we willmerge with Master Branch. Nomenclature for branchs will be - If a feature is beign built, use `feature/__FEATURE_NAME__` where `__FEATURE_NAME__` is your feature. - If a revision of a feature is made `rev/__FEATURE_NAME__` 5. You will be provided with necesarry tools like github repo, mongodb cluster and heroku. 6. You should and must create API documentation using postman or swagger. --- Assigned to - Mohm Owais - Harsh Agarwal - Arunangshu Use meeting link : https://smll.in/@elabs-web (use kiit email) ---