Table of Contents
This project is a combination of different frameworks and libraries. You can copy any part of it and use in your project.
- Database - some basic concepts using mongoose like query, schema, and expressions
- api - various middlewares, controllers, loggers, and error handler
- api security - bcrypt hash algorithm for jwt auth, rate-limiting, input validation and sanitization, header security
- Testing - e2e tests using Cypress, integration tests using Mocha, and load testing using Artillery.
- Caching - basic Redis caching for the api, reducing api response delay
- Containerization - Docker containers for both app and api
- CI/CD - Using Github Actions, building the app and making tests in Ubuntu. After successfull CI workflow, deployment of containers begins on self-hosted device from a cloud provider.
- Various customized ui components from Shadcn: table, calendar, card, dropdown menu, popover etc.
- Some next.js/react concepts like SSR and server actions
- Nextjs middleware to handle cookies before generating pages
- Custom jwt authentication
These are steps to install this project on your local using Docker
-
Docker and docker compose
-
credentials from the following services:
- access token and refresh token from jwt library
- mongodb url from mongodb atlas
- ai key from google ai studio
-
Clone the repo
git clone https://github.com/rumert/firetracker cd firetracker
-
rename the .env.example file inside api/src to .env and write your credentials
-
run this command inside the firetracker folder to build the containers:
docker compose up
-
visit localhost:3000 in your browser
- Add Containerization
- Add CI/CD
- Microservices architecture
- Add mocking for services
See the open issues for a full list of proposed features (and known issues).
Distributed under the MIT License. See LICENSE.txt
for more information.
Rumert Kıran - rumertkiran@gmail.com