Skip to content
/ Orderly Public

Orderly scrapes SRM Academia to fetch the current day order and seamlessly syncs your class schedule with Google Calendar. Just log in once, save your timetable, your calendar will update automatically every day.

Notifications You must be signed in to change notification settings

Swebi/Orderly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 

Repository files navigation

Orderly

Orderly scrapes SRM Academia to fetch the current day order and seamlessly syncs your class schedule with Google Calendar.

Just log in once, save your timetable and let Orderly handle the rest. Your calendar will update automatically every day.

Features

  • Automated Day Order Scraping – Uses Puppeteer to scrape the daily order from Academia.
  • Google Calendar Integration – Syncs your classes automatically based on your saved timetable.
  • Real-Time Monitoring – Powered by BullMQ for reliable job handling for errors and retries. Uses BullBoard to track job execution and logs.

Usage

  1. Log in using your Google account.
  2. Add your subjects
  3. Go to edit timetable and add your classes for each day order
  4. Save your timetable in the app
  5. Enable automated events
  6. Click Manual Trigger to add your schedule into google calendar the first time (Optional)

Orderly will now scrape academia daily at midnight and your classes into your google calendar

Tech Stack

Backend

  • Express
  • Prisma
  • BullMQ - Job queue for handling background tasks like scraping and calendar event scheduling for mutliple users.
  • BullBoard – UI dashboard for monitoring job queues.
  • Google APIs – For authentication and Google Calendar integration.
  • Puppeteer – Headless browser for web scraping.
  • Postgres
  • Redis

Frontend

Deployment

  • Backend: AWS EC2
  • Frontend: Vercel

App Preview

image image image

Google Calendar

image

Bull Board

image image image

Installation & Setup

Backend

  1. Clone the repository:
    git clone https://github.com/swebi/Orderly.git
    cd server
  2. Install dependencies:
    pnpm install
  3. Set up environment variables in a .env file:
     EMAIL = <SRM Academia email>
     PASSWORD = <SRM Academia password>
     DATABASE_URL= <Postgres URL>
     CLIENT_ID= <Google Client ID>
     CLIENT_SECRET= <Google Client Secret>
     SERVER_URL= <Backend URL>
     REDIRECT_URL= <Backend endpoint for google auth redirect>
     ADMIN_PASSWORD= <String>
     CLIENT_URL= <Frontend URL>
  4. Run database migrations:
    pnpm dlx prisma db push
  5. Start the server:
    pnpm dev

Frontend

  1. Navigate to the frontend folder:
    cd client
  2. Install dependencies:
    pnpm install
  3. Set up environment variables in a .env file:
     VITE_PUBLIC_SERVER_URL = <Backend URL>
     VITE_PUBLIC_GITHUB_URL = <GitHub URL>
  4. Start the server:
    pnpm dev

About

Orderly scrapes SRM Academia to fetch the current day order and seamlessly syncs your class schedule with Google Calendar. Just log in once, save your timetable, your calendar will update automatically every day.

Topics

Resources

Stars

Watchers

Forks