The goal is to create To Do App that will have the following functionalities:
- anyone can create, list, edit and delete projects and
- projects will have tasks.
This assessment is divided in two parts:
- building server side (API) using Express and
- building client side using React.
To summarize the requirements for the API side:
- Models: project, task
- Routes: projects, tasks
Now let's proceed to creating the Express app 🚀
Our projects
will have the following schema:
const projectSchema = new Schema({
title: String,
description: String,
tasks: [], // referencing the Task model
});
Anyone can:
- create new project
- edit and delete the projects
- see the list of all the projects
Please proceed to creating all the routes. To test the results you can use Postman or some other tool that's more familiar to you.
Great, you already have fully functioning CRUD app but we will go one more step: let's create tasks for each project.
The task schema can look like this:
const taskSchema = new Schema({
title: String,
description: String,
project: // referencing the Project model
});
Anyone can:
- create tasks in the projects
- edit and/or delete the tasks (optional)
- see all the projects and all the tasks
Great! You just created fully functioning API and now it's the time to proceed to the second part which is creating the views using React.
Create all the necessary components to manifest the full functionality of the app. We require splitting the app into as many as possible reusable components having the navigation and footer components as well. Make sure you manage the state properly. We suggest using axios to fetch/send the data from/to the API but you can use any way that's more familiar to you.
Please send us the link to the public GitHub repo(s) with the code for the API and client side.
We wish you nothing but good luck!
Happy coding! ❤️