You are tasked with building a web application that allows users to create and manage their to-do lists. The application should consist of a responsive webpage built in React, and an API built in Java Spring Boot to store and manage the to-do lists.
- Frontend: Built with React. You can also choose another React framework if you prefer.
- Backend: Built with Java Spring Boot, utilizing any database of your choice (e.g., MySQL, PostgreSQL, MongoDB, or in-memory).
Refer to the provided layout mockup for both desktop and mobile versions. Please follow this design as closely as possible.
- Users should be able to create, read, update, and delete to-do items using the API.
- Users should be able to mark an item as a favorite.
- Users should be able to assign a color to each to-do item.
- The React frontend should display the user's to-do list in a responsive and visually appealing manner, with the ability to filter by favorite items and color.
- Favorited items should appear at the top of the list.
- Backend API:
- Built using Java Spring Boot.
- Use any database of your choice (e.g., PostgreSQL, MongoDB, in-memory, etc.).
- Frontend:
- Built using React and modern web development tools.
- Responsive Design:
- The application should be fully responsive, providing a seamless experience across desktop and mobile devices.
- A link to a GitHub repository containing the complete source code for both the backend and frontend.
- A written description of how to set up and run the application locally.
- Code Quality: Well-structured and maintainable code.
- Code Format: Consistent and follows best practices.
- Code Performance: Efficient and scalable solutions.
- Frontend Design: A user-friendly, visually appealing interface.
- Readability: Is the code easy to understand and maintain?
- Mobile-First Approach: The design should prioritize mobile responsiveness.
- Code Responsibility: Clean separation of concerns (frontend vs. backend).
- Feature Completeness: Does the app meet all the listed functional requirements?
- Responsiveness: Does the app work well across different screen sizes?
- Best Practices: Use of modern web tools and standards.
- Design: Does the app follow the provided design mockup?
- Documentation: Well-documented code and setup instructions.
- Java: Version 11+
- Framework: Spring Boot
- Database: Choose your own, or use an in-memory database (e.g., H2).
- Node: ^16.15.0
- NPM: ^8.5.5
- Framework: React
- CSS: Sass or another preprocessor of your choice.
- Correctly define types and interfaces.
- Set up and enforce ESLint rules.
- Create a Prettier configuration for consistent formatting.
- Containerize the app with Docker.
- Write unit and integration tests.
- Set up CI/CD pipelines for automated testing and deployment.
- Create a file
PULL_REQUEST.mdin which you describe your process, the decisions you made, and any important details about the implementation. - Create a pull request for both the backend and frontend repositories using the same branch name.
- Send us the pull request and you're done!
Good luck! 🚀