Express π template, including Typesafety π‘, with automatic Swagger OpenApi π docs generator and Zod validator π¦
- π Express NodeJS server
- π Swagger OpenApi definition automatically generated based on your Zod Schemas, served vΓa Swagger UI
- π¦ Zod Validate inputs and outputs, type Req and Res objects automagically, under a Typesafety environment
- π Scalable Project Structure, split features into modules
- π§ Drizzle as SQLite ORM
- π§ͺ Powerful testing suite setup with Vitest and Supertest. Unitary and Integration test included, +90% code coverage report included!
- π Morgan Log retention. Save your request logs automatically with an automated rotating write stream
- π² Pino logger
- β Global Error Handler included
- β€οΈβπ©Ή Monitoring Health check endpoint included
- π Security middlewares provided: Helmet for HTTP header security, CORS setup, and Rate Limiting
- π InversifyJS Dependency Injection
- π Latest stable NodeJS working environment, with .env config variables validated with Zod
- π¨ The best linter and formatter, BiomeJS
- πΆ Pre-Commit and Commit Husky hooks (Runs linter and formatter before any commit against staged files only!)
- π Commit nomenclature rules following Conventional Commit Format and Commitizen CLI (emoji powered)
- π Release management policy with commit-and-tag-version, including automagically CHANGELOG.md generation, version bumping and GitTags
- π¦ Included npm-check to check for outdated, incorrect, and unused dependencies.
- π₯·π» Included better-npm-audit to check for dependency vulnerabilities
npm ci # Install dependencies
cp .env.example .env # And fill .env file variables
npm run db:migrate # Generate an empty sqlite db and run migrations
npm run db:seed # Seed db with dummy data
npm run dev # Launch project locally
npm run biome # Run Biome
git add . # Add files
npm run cz # Commit with Commitizen CLI
npm run release # Bump version and generate CHANGELOG.md
git push --follow-tags # Push changes and GitTag to origin
npm run npm:audit # Check dependency vulnerabilities
npm run npm:check # Check outdated dependencies
npm run build # Compile project
npm run start # Launch
npm run test # Run all tests
npm run test:cov # Run all tests with code coverage report
npm run db:generate # Check db schemas and generate migrations if needed
npm run db:migrate # Run migrations
npm run db:seed # Seed database
npm run db:studio # Open drizzle studio
npm run db:setuptests # Setup test environment
npm run db:hardreset # DANGER! Removes all data from databases, run migrations, and seed database afterwards