During my college years, I found that teachers, students & myself would often have to stand outside the dean's office for long hours. I found this very disturbing as a Computer Science Engineering Student. I saw the potential of a software scheduler that would make everyone's life easy.
From the technical side, my main source of motivation was the simplicity and elegance of https://www.when2meet.com
Scheduler RESTFul API Server built using NestJS, Prisma, REST and PostgreSQL.
Built with ❤️on top of
Scheduler allows users to register, create and manage their calendar and events
- User [Host&Guest] SignUp & SignIn
- Create Events for every day
- Create timeslots with availability status for events applicable for everyday
- Schedule meetings/sessions based on available timeslots provided by the host
- Modular architecture: Business Logic & Auth handled in separate modules, separating concerns.
- HTTP requests are handled by Controllers
API documentation using nest/swagger module- Business logic is implemented in Services
- Database interactions are handled using Prisma
- Validation using NestJS Pipes
- Data Transfer Object(DTO) pattern for transferring data between layers
- Configuration management using .env files for development, test & prod configs
- Authentication / Authorization, Event ownership by users
- PassportJS, JWT tokens, Password hashing, salts
- Unit tests using Jest
- Supertest for E2E testing
Technical documentation using Compodoc
As NestJS is heavily inspired by Angular, we can generate the documentation about project structure modules, controllers, services etc. I have generated the docs.
Find 'em here - https://jsfame.github.io/api.scheduler.nas/
npm install -g pnpm
pnpm install
- Copy
.env.example
with.env
- Fill in the env vars in
.env
# development
$ pnpm run start
# watch mode
$ pnpm run start:dev
# production mode
$ pnpm run start:prod
# unit tests
$ pnpm run test
# e2e tests
$ pnpm run test:e2e
# test coverage
$ pnpm run test:cov
This repo is MIT licensed.