-
backend
cd ./backend npm i npm run dev
-
frontend
cd ./frontend npm i npm run dev
Backend
- use Node
Express
(Typescript) to build backend API server (GraphQL/Rest) - use MongoDB (Altas online) as DB, use **
Mongoose
**as ORM to build data model to connect MongoDB (under/src/models/**
) - use
apollo-server-express
to build GraphQL server- Schema:
/src/graphql/schema/**
- Resolvers:
/src/graphql/resolvers/**
- Separated different modules into different files ( like
reservation.resolvers.ts
)
- Schema:
- Implemented
basic authentication
as sample (rest and graphql, not integrated with frontend)- RestAPI: under
src/rest
- RestAPI: under
- use
Jest
to do unit tests (src/test/**
) - use
winston
as Logging (/src/utils/logger.ts
) - wrapped
AppError
anderrorHandler
as global error handler under/utils/errorHandler.ts
- TODO: Consider IoC to inject services and db repo for future enhancement
Frontend
- React
@apollo/client
to connect GraphQL API