Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mahabubx7/ts-express
Type safe Express.js backend server boilerplate.
https://github.com/mahabubx7/ts-express
Last synced: 1 day ago
JSON representation
Type safe Express.js backend server boilerplate.
- Host: GitHub
- URL: https://github.com/mahabubx7/ts-express
- Owner: mahabubx7
- License: mit
- Created: 2023-11-03T18:13:04.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-26T10:48:46.000Z (12 months ago)
- Last Synced: 2023-11-26T11:31:04.024Z (12 months ago)
- Language: TypeScript
- Size: 1.47 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Express.js with TypeScript
> It's production ready express.js backend project boilerplate
### Core concepts
- Type-safe with TypeScript 4.8+ or 5.x
- Mongoose for MongoDB
- REST-APIs `JSON` approach & GraphQL can added later easily (just add schema, resolvers, and server integration).
- Modular structure approach
- Development made-easy core modifications
- Built for ES2020 and requires Node.js v18 or later
- Authentication using `passport.js` as local, jwt and oauth strategies
- Authorization own/custom policy-based-access-control including RBAC
- Token based `JWT` authentication with httpOnly cookies
- Cron jobs with `node-cron` and Queues with `bull`
- Mailing feature with `nodemailer`
- Logger using `winstone` or `morgan` or something else
- API response caching with `redis`#### Todo:
- [x] Make custom `access-control` with roles & its hierarchy based permissions.
- [x] Parse and assign DTO after result into `req.bodyParsed` or `req.zod.results`
- [x] Add Request rate-limiter or throttler
- [x] Logger setup for `dev` or `production` mode
- [x] Setup file uploads and retriever (i.e. `multer`, `aws-s3` or `minIo`)
- [] Implement API Documentation. [Recommended: `swagger/js-doc`]
- [] Implement Tests (Unit, Integrations and e2e [at least for Auth & Todo])
- [] Complete and Run production app with Docker (compose) + Caddy/Nginx.
- [] (optional) Implement real-time communication setup