Skip to content

SergeantQuickscoper/nit-sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo with Dark BG

A timetable and alert system for NIT Warangal Students


Project Overview

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

Screenshot Showcase

Below are some screenshots and UI assets from the project (see docs/assets/ for all pictures):

Signup 1 Mobile Signup 3 Mobile Signup 4 Mobile Signup 5Mobile Signup6 Signup 1 Mobile View Timetable


Guide to running it yourself

Backend (Node.js/Express)

Prerequisites:

  • Node.js (v18+ recommended)
  • npm
  • PostgreSQL (running and accessible)

Setup:

  1. Navigate to the backend directory:
    cd backend
  2. Install dependencies:
    npm install
  3. Run the server in development mode:
    npm run dev
    Or in production mode:
    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)

Expo Frontend (React Native)

Prerequisites:

  • Node.js (v18+ recommended)
  • yarn
  • Expo CLI:
    npm install -g expo-cli

Setup:

  1. Navigate to the frontend directory:
    cd expo-frontend
  2. Install dependencies:
    yarn
  3. Start the Expo development server:
    npx expo start
  4. 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.

Environment Variables Setup

Backend

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

Expo Frontend

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.


Additional Notes

  • 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

About

A timetable and alert system for NIT Warangal Students.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published