clean-node-file-uploader-api-js
clean-node-file-uploader-api-js copied to clipboard
NodeJS server that exposes a file upload API, built with TDD and DDD along with Clean Architecture.
Clean Node File Uploader Api
About •
Supported OS •
Design Patterns •
Required Tools •
Running Project •
Running Tests •
Running Swagger •
Benchmark •
License

:page_facing_up: About
This is a file upload API developed in pure Vanilla Javascript.
The objective from this project is to show how to create an API with a well-defined and decoupled architecture, using T.D.D. - (Test Driven Development) as a work methodology, building along with the Clean Architecture concept, dividing the layers responsibility !
:hammer_and_wrench: Supported OS
- [x] Mac OS
- [x] Linux
- [ ] Windows
:large_blue_diamond: Design Patterns
- Factory
- Adapter
- Composition Root
- Builder
- Singleton
:clipboard: Required Tools
- [x] Node - https://nodejs.org/
- Node version: 16.x.x
- npm version: 8.x.x
- [x] Yarn - https://yarnpkg.com/
- Yarn version: 1.22.5
- [x] Snyk - https://snyk.io/
- [x] Husky - https://typicode.github.io/
- [x] Docker - https://www.docker.com/
:racing_car: Running Project
- Clone Repository
$ git clone https://github.com/gftf2011/clean-node-file-uploader-api-js.git
- Install dependencies
################################################################################
# YARN usage is recommended, or use the "npm install" to install dependencies. #
################################################################################
$ yarn
- Use command below to run development environment
$ yarn docker:dev:run
OBS.: Ensure to install all dependencies in Required Tools
:test_tube: Running Tests
$ yarn docker:test:run
######################################
# Uses Cucumber.JS to run BDD tests. #
######################################
$ yarn test:cucumber
:bookmark: Benchmark
$ yarn docker:local:doctor:run
:file_cabinet: Running Swagger
- Run command below
$ yarn docs
- Access the url - localhost:3334/api-docs
:memo: License
This project is under MIT license. See the LICENSE file for more details.
Made with lots of :heart: by Gabriel Ferrari Tarallo Ferraz