To use this application, clone down both repositories to your local machine. Run commands npm i
and npm start
in the back end repo, then do the same for the front end.
- I've only built a few APIs and it's been awhile since the last one, so it felt good to build a working one in TypeScript in basically a day.
- Used node's FS-promises module to simulate an async JSON-based data store without having to deploy a backend.
- Used the opportunity to get practice with a UI library I've wanted to try for awhile.
- Past week-plus has been pretty brutal on a few fronts and I would've liked to have been able to spread my time out a bit in working on this, rather than cramming into a couple nights.
- Not much in the way of error-handling on either end, which was a casualty of the time window - would've liked to get to differentiating status codes, etc.
- Tried to deploy the FE but ran into CORS errors, and couldn't solve by proxying the URL or passing options to
cors()
. - Usually would've written at least an endpoints guide for the backend repo.
- Build a simple todo app with React + TypeScript frontend.
- You should have some form of data management and persistence
- Encouraged to build a custom backend/database/api to interact with from React.
- A user can create/edit/delete a list of projects within the app
- A user can create/edit/delete todo items within a given project
- (edit counts for toggling todo as “completed”)
- The assessment will be submitted as GitHub repositories.
- One repo for the React + TypeScript frontend
- Any additional repos for api/backend code, etc
- Be Versioned (route prefixed with “/api/v1/” for example)
- Be RESTful (https://en.wikipedia.org/wiki/Representational_state_transfer)
- Support “application/json” content-type
- Provide standard CRUD endpoints for projects and todo items
- Use 401/403 response codes accordingly
- Respond with accurate and meaningful information
- Use appropriate HTTP code (https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
- Supply relevant error/success information in the response body
- Connect UI actions with API (to create/edit/delete projects and/or todo items)