Example of creating a nest app from scratch with openapi
A progressive Node.js framework for building efficient and scalable server-side applications.
Nest framework TypeScript starter repository.
$ npm install
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.
- Author - Kamil Myśliwiec
- Website - https://nestjs.com
- Twitter - @nestframework
Nest is MIT licensed.
npm run start:dev
Check everything is running fine using npm run offline
(not the base url doesn't work with serverless offline e.g '/' but will when deployed)
then npm run deploy:fresh
or npm run deploy
if updating.
After running the application, openapi.json will get created. You can then generate types from that using npm run gen-api-client
to use in a front end application.
You can also head to this url to look at the swagger docs.
http://localhost:3333/docs/
Goal: Have a sellable generic booking model, A user can create a service and a customer can make bookings against the service. Front end will show one service at a time serviceName/book
- Have bookings and users. Can hardcode time slots and can show which ones have bookings
- Service and timeslots, 1 service has many time slots which will have many bookings.
- A business will have many services.
erDiagram
SCHEDULES ||--o{ SERVICE : hasMany
SCHEDULES {
}
SERVICE {
id string
serviceType string
times DateList
sections stringList
}
SERVICE ||--o{ TIMESLOTS : hasMany
SERVICE {
id string
duration number
serviceType string
sections stringList
createdAt Date
updatedAt Date
}
TIMESLOTS ||--o{ BOOKINGS : creates
TIMESLOTS {
id string
time Date
}
BOOKINGS {
time Date
selectedMenuOptions List
numOfPeople number
customerNotes string
managerNotes string
created_at Date
updated_at Date
}
CUSTOMER ||--o{ BOOKINGS : places
CUSTOMER {
id string PK
firstName string
lastName string
email string
phone string
}
-
pass auth0 params in -- maunally add to ssm, setup permissions, add key to provder.ts
-
database
-
domain name.