https://github.com/ahmed-rafiullah/trello-todo
A modest 'Trello' like Web App
https://github.com/ahmed-rafiullah/trello-todo
actions backend best-practices board boilerplate-node github javascript nodejs swagger swagger-ui trello trello-like
Last synced: 1 day ago
JSON representation
A modest 'Trello' like Web App
- Host: GitHub
- URL: https://github.com/ahmed-rafiullah/trello-todo
- Owner: ahmed-rafiullah
- Created: 2020-02-29T08:34:07.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T01:30:46.000Z (over 3 years ago)
- Last Synced: 2023-07-25T06:18:20.012Z (almost 3 years ago)
- Topics: actions, backend, best-practices, board, boilerplate-node, github, javascript, nodejs, swagger, swagger-ui, trello, trello-like
- Language: JavaScript
- Size: 1.32 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# A Modest 'trello' like App
[](https://shields.io/)
 [](http://makeapullrequest.com) [](https://standardjs.com) 
**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.
#### Features
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
#### Quality checks
This app follows as close as possible node best practices https://github.com/goldbergyoni/nodebestpractices where ever applicable and feasable
* Project Structure Practices
* [x] Structure your solution by components
* [x] Layer your components, keep Express within its boundaries
* [ ] Wrap common utilities as npm packages
* [x] Separate Express 'app' and 'server'
TODO: Use environment aware, secure and hierarchical config
* [ ] Use environment aware, secure and hierarchical config
* Error Handling Practices
* [x] Use Async-Await or promises for async error handling
* [x] Use only the built-in Error object
* [x] Distinguish operational vs programmer errors
* [x] Handle errors centrally, not within an Express middleware
* [x] Document API errors using Swagger or GraphQL
* [ ] Exit the process gracefully when a stranger comes to town
* [x] Use a mature logger to increase error visibility
#### Tech stack
Uses Git flow for managing features.
Uses eslint and prettier with pre commit hooks
##### Backend
* 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
#### How to run
place commands here
#### Run code tests
For testing i used supertest that can run tests directly againts api endpoints.
And mocha for unit and integration tests
#### Testing
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.