Welcome to the Sellpy Sandbox environment for fullstack development!
Start by forking the repository.
NodeJS - https://nodejs.org/en/download/ MongoDB - https://hub.docker.com/_/mongo
Make sure that MongoDB is up and running in you local machine in port 27017.
- Navigate to the backend folder
- Run 'npm ci'
- Run 'npm start'
- Navigate to the frontend folder
- Run 'npm ci'
- Run 'npm start'
A browsertab will automatically open and load the app.
- Navigate to the scripts folder
- Run 'node seedDatabase.js'
If you don't have a favorite editor we highly recommend VSCode. We've also had some ESLint rules set up which will help you catch bugs etc. If you're using VSCode, install the regular ESLint plugin and you should be good to go!
You can open the root folder in one workspace, or /frontend
and /backend
in seperate workspaces - both should work fine.
Your assignment is to improve this todo list application. At the moment the application is simple and can only create and remove todos. As is, nothing is persisted in the server. As a result all state is cleared when refreshing the page! Below follows one main task and 4 additional tasks. Your assignment is to complete the main task together with at least 2 out of 4 of the additional tasks. If you feel constrained by time (which is totally fine!), prioritize quality over quantity.
Persist the todo lists on the server. Persisting in a database is not required. (Simple js structures on the server is fine). If you do go for an actual DB (again not required), be sure to include instructions of how to get it up and running.
- Don't require users to press save when an item is added/edited in the todo list. (Autosave functionality)
- Make it possible to indicate that a todo is completed.
- Indicate that a todo list is completed if all todo items within are completed.
- Add a date for completion to todo items. Indicate how much time is remaining or overdue.
Send a link to your forked repository to your contact person at Sellpy.