- Three tier architecture code structure.
- Unit and Integration testing.
- ESLint using Airbnb style guide.
- Docker deployment with docker compose file.
- Code style uses some of es2016+ features.
- Configuration files can be separated for each Deployment environments.
- Web application requests is served and proxied through NGINX.
- Compression using gzip.
- Removed some security vulnerabilities.
- Data store is automatically seeded (For testing purposes)
To be able to run and test the application you need to install the following:
- Docker
- Docker Compose
- Node.js 12 (Optional for running the tests)
- Download and build the images
$ docker-compose build
- Run the containers
$ docker-compose up
- To access the web interface: Go to "http://localhost"
For testing for purposes redis database is preloaded with 50,000 emails.
To execute Unit and Integration test:
$ npm run test
Testing requires Redis to be accessible. To be able to successfully run it, you need to expose redis service TCP port from "6379" to "6379:6379" in docker-compose.yml file.
- Docker deployment: https://github.com/DanWahlin/CodeWithDanDockerServices