Develop a full stack Todo List application using the provided backend code for authentication. The application should allow users to create, read, update, and delete todo items.
- Backend: Express.js (authentication code provided)
- Frontend: React.js (architecture is flexible)
- Implement user authentication using the provided backend code.
- Ensure secure login and registration processes.
- Use JWT or session-based authentication as per the provided backend architecture.
- CRUD Operations:
- Users should be able to create, read, update, and delete their todo items.
- Todo Item Structure:
- Each todo item should have at least the following properties:
- Title (string)
- Description (string)
- Status (boolean: completed or not)
- Due Date (date)
- Each todo item should have at least the following properties:
- User-specific Todos:
- Ensure that each user can only manage their own todo items.
- Use React.js for the frontend.
- Implement a clean and user-friendly interface.
- Ensure responsiveness for different screen sizes.
- Use state management (e.g., Context API, Redux) to manage application state.
- Include validation for user inputs.
- Implement sorting and filtering options for the todo list.
- Add user notifications for actions (e.g., todo added, updated, deleted).
- Provide a dark mode toggle.
- Write unit tests for critical components and functions.
- Ensure the application is free of critical bugs.
- Provide clear documentation on how to set up and run the application.
- Include comments in the code to explain key functionalities.
- Submit the code repository (e.g., GitHub) with a clear commit history.
- Include a README file with instructions on how to run the application.
- Provide a demo link if hosted online.
- Code quality and organization.
- Functionality and adherence to requirements.
- User interface design and user experience.
- Testing coverage and documentation.