Corelab Challenge:

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 Node.js to store and manage the to-do lists.

The repositories

The frontend repository

If you feel more comfortable, you can pick another React framework and show us your skills.

The backend repository

If you feel more comfortable, you can pick another Node JS framework and show us your skills.

The Layout

Open the layout mockup in desktop and mobile version and follow this design as much as possible.

The application should have the following functionality:

  1. Users should be able to create, read, update, and delete to-do items using the API.
  2. Users should be able to mark an item as a favorite.
  3. Users should be able to set a color for each to-do item.
  4. 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.
  5. The favorited items should be displayed at the top of the list.

Technical Requirements:

  1. The backend API should be built in Node.js framework and use a database of your choice (e.g., MongoDB, PostgreSQL, etc.).
  2. The frontend should be built in React and use modern web development tools and best practices.
  3. The application should be responsive and visually appealing.

Deliverables:

  1. A link to a GitHub repository containing the complete source code for the project.
  2. A written description of how to set up and run the application locally.

Evaluation Criteria:

  1. Code Quality
  2. Code Format
  3. Code Perfomance
  4. Frontend Design
  5. If your code is Easily Readable
  6. Mobile First approach
  7. Code Responsability
  8. Features Work
  9. Responsiveness
  10. Does the application meet the functionality requirements listed above?
  11. Is the code well-organized, easy to read, and well-documented?
  12. Are modern web development tools and best practices used?
  13. Is the application visually appealing and responsive?

Backend

Repository:

  1. Node: ^16.15.0
  2. NPM: ^8.5.5
  3. Framework: Adonis TS or any other node framework you know.
  4. Database: Choose your own, you can even save in memory.

Frontend

Repository:

  1. Node: ^16.15.0
  2. NPM: ^8.5.5
  3. Framework: React TS
  4. Sass or other preprocessor

Want to impress us even more?

If you feel comfortable and want to impress us even more, you can do the following:

  1. Work on correct types and interfaces
  2. Work on eslint rules
  3. Work prettier config
  4. Work on docker containers
  5. Work on tests
  6. Work on CI/CD

What to do when you finish?

Create a file PULL_REQUEST.md where you will describe what you did and how in as much detail as possible. Feel free to add videos for better explanation.

Create a new pull request using the same branch name for Backend and Frontend

Send us the pull requests and that's all!

Good luck! The sky is the limit 🚀