A timetable and alert system for NIT Warangal Students
This project is a timetable and alert system designed for students of NIT Warangal and other instituitions. It consists of an extensible and robust backend (Node.js/Express/TypeScript/PostgreSQL) and a modern mobile/web frontend built with Expo (React Native). The system allows students to manage their class schedules, receive notifications, and interact with various academic events seamlessly and quickly.
Main Features:
- Institute specific User authentication
- Automatic class detection
- Timetable creation and editing by CR
- Reoccurring and one-time event scheduling
- Subject selection and management
- Real time notifications and alerts
- Mobile and web support
Below are some screenshots and UI assets from the project (see docs/assets/
for all pictures):
Prerequisites:
- Node.js (v18+ recommended)
- npm
- PostgreSQL (running and accessible)
Setup:
- Navigate to the backend directory:
cd backend
- Install dependencies:
npm install
- Run the server in development mode:
Or in production mode:
npm run dev
npm run prod
Migrations:
- Run the database migrations (using Knex CLI), and set up knexfile config for your DB (can skip this the knexfile setup if using Postgres)
Prerequisites:
- Node.js (v18+ recommended)
- yarn
- Expo CLI:
npm install -g expo-cli
Setup:
- Navigate to the frontend directory:
cd expo-frontend
- Install dependencies:
yarn
- Start the Expo development server:
npx expo start
- To run on Android/iOS/web:
- Use the Expo CLI interface that appears after running the above command, or scan the QR code with your Expo Go app.
Create a .env
file in the backend/
directory with the following variables:
PORT=3000
JWT_SECRET=your_jwt_secret
GMAIL_DR_APPPASS=your_gmail_app_password
SERVICE_ACCOUNT_DIR=path_to_firebase_service_account.json
FIREBASE_URL=your_firebase_db_url
DB_DEV_NAME=your_dev_db_name
DB_DEV_USER=your_dev_db_user
DB_DEV_PASS=your_dev_db_password
DB_PROD_NAME=your_prod_db_name
DB_PROD_USER=your_prod_db_user
DB_PROD_PASS=your_prod_db_password
Create a .env
file in the expo-frontend/
directory with:
EXPO_PUBLIC_AUTH_SERVER=http://localhost:3000
Replace with your backend server URL as needed.
- For push notifications and email features, configure the relevant environment variables and Firebase app.
- For any issues, consult the codebase or open an issue.
Authored by: Don Roy Chacko donisepic30@gmail.com