This is the backend portion of the app
This is a trello like web app to organize and manage todos. Todos can be part of lists or as i call them groups. Each group is part of a board. A user can have multiple of all of these.
Some functionalities are
- Boards
- starred boards
- Groups
- Todos
- Todos can have
- checklists
- description in markdown
- due date
- tags
- starred todo
- cover - the image of a todo task
- copy a todo
- activity timeline
- Users
- Full text search and queryable information about all todos, groups and boards
- Shortcuts
This app follows as close as possible node best practices https://github.com/goldbergyoni/nodebestpractices where ever applicable and feasable
- Project Structure Practices
- Structure your solution by components
- Layer your components, keep Express within its boundaries
- Wrap common utilities as npm packages
- Separate Express 'app' and 'server' TODO: Use environment aware, secure and hierarchical config
- Use environment aware, secure and hierarchical config
- Error Handling Practices
- Use Async-Await or promises for async error handling
- Use only the built-in Error object
- Distinguish operational vs programmer errors
- Handle errors centrally, not within an Express middleware
- Document API errors using Swagger or GraphQL
- Exit the process gracefully when a stranger comes to town
- Use a mature logger to increase error visibility
Uses Git flow for managing features. Uses eslint and prettier with pre commit hooks
- Nodejs
- Mysql for persistence
- Vanilla Javascript - ES6
- JWT for authorization - no session is maintained
- API documentation using open api v3.0.1 schema and swagger ui
- App ,database, and documentation server runs in a docker container
- Internally uses pm2 for crash recovery
- Uses LogRocket for App montoring
- CI/CD done by jenkins
- docker swarm for orchestration
place commands here
For testing i used supertest that can run tests directly againts api endpoints.
And mocha for unit and integration tests
Open in postman and start testing the api. Refer to swagger ui for documentation
██╗ ██╗██╗██████╗ ███████╗ ███╗ ███╗███████╗
██║ ██║██║██╔══██╗██╔════╝ ████╗ ████║██╔════╝
███████║██║██████╔╝█████╗ ██╔████╔██║█████╗
██╔══██║██║██╔══██╗██╔══╝ ██║╚██╔╝██║██╔══╝
██║ ██║██║██║ ██║███████╗ ██║ ╚═╝ ██║███████╗
╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚══════╝
I am actively looking for a job as a full stack developer who has devops experience.