api.nerd.api-video-readme.mp4
- A personal project I created to learn and improve my skills in:
- Clean/Hexagonal Architecture Principles (ports, useCases, repositories, etc)
- Stateless Authentication & Authorization using JWT
- API (REST) development and documentation
- Tests (Unit, integration, TDD, etc)
- Web Scrapping
- API Requests Handling & Limit & Quota
- SaaS (Software as a Service) Backend Development
- And so on
- This project use 2 databases:
- JSONs files for simplicity and fast development.
- PostgresSQL using PrismaORM (migrations, seeds, prisma studio) and Docker
- NodeJS v22
- TypeScript
- NestJS
- VSCode
- Prisma ORM
- Docker
- PostgreSQL
- Telegram API for Logs
- Deploy: https://render.com/
- Payments: https://stripe.com/en-br
- Emails: https://resend.com/
- GitHub Actions for CI/CD
- Unit Tests using mocks
- Integration Tests
- Swagger API Documentation
- FrontEnd Source Code: https://github.com/AlexGalhardo/nerdapi.com
- Documentation Source code: https://github.com/AlexGalhardo/docs.nerdapi.com
- Docs Live: https://docs.nerdapi.com
- Clone repository
git clone git@github.com:AlexGalhardo/api.nerdapi.com.git
- Enter repository
cd api.nerdapi.com/
- Install dependencies
npm install
- Setup your environment variables
cp .env.example .env
- Create Migrations and Seeds
chmod +x setup.sh && ./setup.sh
- To Start Prisma Studio:
npm run prisma:studio
- Start local server
npm run dev
a. Creating build
npm run build
b. Testing build server locally
npm run start
a. Run all tests
npm run test
b. Run integrations tests
npm run test:integration
- You can see the HTTP Requests references inside folder rest-client/
- You can also see Swagger API documentation in: http://localhost:3000/api
Copyright (c) August 2023-present, Alex Galhardo