The best place to get help is on Discord or X.
Discord: https://discord.gg/4ae2Esm6P7 X: https://x.com/tomdoes_tech
- Basic Principals of REST APIs
- How to structure your applications
- How to test REST APIs
- How to use Docker for local development
- How to use Drizzle for database interactions
- How to use JSON Schema for API design
- Basic TypeScript
- How to capture and visualise metrics
- Functional style
- json-schema
- Object-oriented
- Dependency injection
- json-schema
- Object-oriented
- Dependency injection
- Zod schema
- Authentication
- User management
- Job management
- Metrics
- Node.js
- Fastify
- Drizzle
- Postgres
- TypeScript
- Pino
- Prometheus
- Grafana
- A code editor - VSCode/Cursor
- A HTTP client - Postman
- Node.js installed
- Docker installed (Optional) or a Postgres instance
- SQL client - TablePlus (Optional)
- Docker (Recommended)
- Local Postgres instance
- DBngin (local) https://dbngin.com/
- Neon (Cloud) https://neon.tech/
- Supabase (Cloud) https://supabase.com/
- Database design
- API design
- Postgres
- API
- Dozzle (Logs)
- Install dependencies
- Install dev dependencies
- Initalise project
- Setup database
- Setup logging
- Configure server
- Register user
- Login
- Get user
- Testing
- Create job
- Get job
- Update job
- Delete job
- Testing
- Create job application
- Get job applications for a job
- Update job application status
- Delete job application
- Testing
- Setup Prometheus
- Capture default metrics
- Add a histogram for all requests
- Add a custom metric for database calls
- Visualise metrics with Grafana
- Verify the user's account via email
- Add an OAuth flow with an identity provider like Google or GitHub
- Add multi-tenancy
Discord: https://discord.gg/4ae2Esm6P7 Twitter: https://twitter.com/tomdoes_tech Bluesky: https://tomdoestech.bsky.social