Deployed at TimetablePRO
The project was built using the create-t3-app boilerplate. The boilerplate is a full-stack web application template based on Next.js. Our project contains following stacks to solve certain problems.
- Next.js - React Framework for Production
- TypeScript - Typed JavaScript
- TailwindCSS - Utility-First CSS Framework
- RadixUI - Primitive UI Components
- shadcn/ui - UI Components built with TailwindCSS and RadixUI
- Next-Auth - Session and JWT based Authentication for Next.js
- tRPC - End-to-End Typed RPC for secured client-server communication with React Query
- React Hook Form - Manageable Forms with React Hooks
- Zod - TypeScript-first Schema Validation for both client and server
- Argon2 - Password Hashing Algorithm
- Axios - Promise based HTTP client for out-of-the-box API calls
- Prisma - Next-generation ORM for Typescript and Node.js
- PostgreSQL - Open Source Relational Database
- Railway - Managed PostgreSQL Database Hosting
- Vercel - Serverless Deployment Platform
- AWS Lambda - Serverless Compute Service to run backend algorithm
git clone https://github.com/fixfon/high-school-timetabling-web-apppnpm install# Create a .env file
DATABASE_URL=""
SERVERLESS_FUNCTION_URL=""
NEXTAUTH_SECRET=""
NEXTAUTH_URL="http://localhost:3000"
prisma migrate dev --name init
prisma generatepnpm dev6. Open http://localhost:3000 with your browser to see the result.
Deploy your serverless function to AWS Lambda. You can use the example function in serverless.py file. You can set an API Gateway to your function and provide it to the SERVERLESS_FUNCTION_URL environment variable.
In your 'createTimetable' router (in src/server/api/routers/timetable.ts), the function sends a post request to the serverless function. You can change the request and response type in the ./utils/create-timetable-request.ts file.