Skip to content

About

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

TimetablePRO

Optimized Timetable Creator Web Application for High Schools

Deployed at TimetablePRO

Table of Contents

The Stack

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

Quick Start

1. Clone the repository

git clone https://github.com/fixfon/high-school-timetabling-web-app

2. Install dependencies

pnpm install

3. Setup environment variables

# Create a .env file
DATABASE_URL=""
SERVERLESS_FUNCTION_URL=""
NEXTAUTH_SECRET=""
NEXTAUTH_URL="http://localhost:3000"

4. Setup database

prisma migrate dev --name init
prisma generate

5. Run the development server

pnpm dev

6. Open http://localhost:3000 with your browser to see the result.

7. Deploy to Vercel

8. Deploy to AWS Lambda

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.

About the Project

Features

Further More

About

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages