Demo application for testing, prototyping and learning purposes.
E-Mail configuration for smtp support by setting env variables, e.g. in .env file:
EMAIL_HOST=smtp.example.com
EMAIL_SENDER=myEmail@example.com
EMAIL_PASS=mypasswordFor jwt security secret key set JWT_SECRET to a random string.
These settings are not required.
Just yarn start, or yarn start:debug for server debugging and hot reloading.
Once started, you can go to localhost:3000/api to see a summary of all http routes.
All routes prefixed with api/ return json. Others call Next.js to render components.
You can call yarn seed <EMAIL> [<EMAIL2>, [<EMAIL3>, ...]] to populate dev db with some data, pw will be hello-world
There are three groups of directories in src.
- Server code is in
server - Client code is in
pagesandcomponentscomponentshas all components grouped by subjects.pagesis the file-based routing of next.js.- It's the bridge between
serverandcomponents - That's where initial data fetching and layout setting happens.
- It's the bridge between
- Common code is in
types, caslandutilstypeshas all type definitions and validations using superstructcasldefines abilitiesutilscontains common helper functions
Call yarn doc for compodoc docs generation. It'll show documentation about backend code.
- Next.js - Frontend Framework
- Nest.js - Backend Framework
- TypeORM - Database ORM
- TypeORM Factories - Testing
- Passport-jwt - Authentication
- CASL - Authorization
- Class Validator - Entity Validation
- Superstruct - Type Validation
- Bcrypt - Encryption
- Winston - Logging
- Swr - Fetching
- NodeMailer - E-Mails
- Socket.io v2 Server
- Socket.io v2 Client
- Antd - Design system
- Flydrive - Storage
- date-fns - Date functions
- marked - Markdown
- faker.js - Random Data for testing
- TreeModel