clean-node-file-uploader-api-js icon indicating copy to clipboard operation
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



AboutSupported OSDesign PatternsRequired ToolsRunning ProjectRunning TestsRunning SwaggerBenchmarkLicense


: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


:racing_car: Running Project

  1. Clone Repository
  $ git clone https://github.com/gftf2011/clean-node-file-uploader-api-js.git
  1. Install dependencies
  ################################################################################
  # YARN usage is recommended, or use the "npm install" to install dependencies. #
  ################################################################################
  $ yarn
  1. 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

  1. Run command below
  $ yarn docs
  1. 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