-
Zeroday fullstack
-
AWS EKS
The Fullstack template is a fullstack project using Node and React. The template can be automatically deployed to Amazon EKS using the "AWS EKS" deployment template.
- Fullstack template
-
Node backend using PostgreSQL
- Bearer Token Authentication using JWT
- Google Authentication
-
React + Redux Frontend
- Webpack 5 + refactored common config
- React Router 5
- Building minified nginx image for Docker
-
Docker Compose
- Override-files for Unit and Acceptance Testing
-
Robot Framework Testing
- Running tests using Selenium Grid + Docker
- Using Eficode Robot Framework Template
-
Jenkins
- Everything built and tested using Docker
- Trivy security scanning
-
GitHub Actions
- Everything built and tested using Docker
- Trivy security scanning
- Slack notifications
- docker and docker-compose
This project comes with a VSCode Remote Container setup for local development. It requires a VSCode addon Remote Containers and Docker to work.
To start the remote container open VSCode Command Palette (Ctrl+Shift+P) and type Reopen in container. This will open the folder inside the dev container which will then have fixed (and extensible) list of VSCode extensions, so that everyone working with the project will have an uniform development experience.
The project can also be developed without remote containers but it is recommended to use it.
To run the project in development mode, run:
docker-compose up
For production mode you need to use the production configuration file:
docker-compose --project-directory . -f compose/production.yml -f compose/db.yml up
docker-compose -f docker-compose.yml -f compose/db.yml run backend-dev node db/seeds.js
Install postgresql:
https://www.postgresql.org/download/
psql -c "CREATE ROLE demo WITH CREATEDB LOGIN PASSWORD 'demo'"
psql -c "CREATE DATABASE demo WITH OWNER demo"
psql -c "CREATE DATABASE demo_test WITH OWNER demo"
Add this line to your .env:
export DATABASE_URL=postgres://demo:demo@localhost/demo
Run these commands in the /backend directory:
npm install
npm start
The backend will run on port 9000
Run these commands in the /frontend directory:
npm install
npm start
The frontend will run on port 8000
Project code style is based on Airbnb JavaScript style quide
To use editorconfig, download plugin for your IDE.
Run eslint in Docker container
docker-compose run backend-dev sh -c "npm run lint"
docker-compose run frontend-dev sh -c "npm run lint"
Run npm run lint
in backend and frontend directories to check the linting locally.
docker-compose --project-directory . -f compose/db-test.yml -f compose/test.yml run mocha
docker-compose --project-directory . -f compose/db-test.yml -f compose/robot.yml run robot
You can read the instructions on this page.
Jenkins can be set up automatically with the executor script named "GitHub Jenkins pipeline setup script".
The following list includes the resources which are to be removed. Delete resources selectively if required.
- Delete Jenkins pipeline