Skip to content
CodeChefVITPublic

About

Stop fighting FFCS: Pick your favorite faculties and get a priority-based, clash-free timetable in seconds.

Topics

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

1 watching

Forks

Latest commit

 

History

966 Commits

Folders and files

Repository files navigation

FFCS-inator

FFCS-inator

FFCS-inator - CodeChef VIT

Generate priority-based timetables in seconds with FFCS-inator. The smartest way to plan your VIT FFCS. Pick your favorite faculties, set your subject and faculty priorities, and let FFCS-inator create the perfect clash-free timetable for you. Save your timetables for later, and easily share them with friends. No hassle. No stress. Just your ideal schedule, tailored to you.

Tech Stack

  • Next.js — Framework for React applications with server-side rendering and API routes.
  • TypeScript — Static typing for safer, scalable JavaScript applications.
  • Tailwind CSS — Utility-first CSS framework for rapid UI development.
  • MongoDB — Database.
  • ExcelJS — Library for creating and manipulating Excel spreadsheets in Node.js and the browser.
  • pdfmake — Library for generating PDF documents dynamically in the browser and Node.js.

Features

Faculty Listings by Domain, School, Subject, and Slot

  • Search and explore a complete list of faculties, organized by school, domain, subject, and slot.

Automatic Timetable Generation

  • Generate all possible clash-free timetables automatically using a smart 2D priority algorithm that considers your faculty and subject preferences.

Download Detailed Reports

  • Export a comprehensive PDF report showing:
    • All faculties possible for each subject
    • Detailed clash information between selected slots and faculties

Save Timetables

  • Save your generated timetables for future access and comparison.

Share Timetables Securely

  • Share your timetable with others via a unique shareable link.
  • Control privacy settings to make your timetable public or private as needed.

Interactive Slot View & Clash Detection

  • Quickly visualize all available slots on a timetable grid.
  • Once a slot is selected, conflicting slots are automatically blocked to prevent clashes and simplify your choices.

Get Started

The repository has two branches, 'prod' and 'staging'.

prod (Production Branch) represents the live, user-facing version of the project where bug-free, well-tested code resides.

staging (Staging Branch) serves as a pre-production environment, where features and fixes are tested before they go live.

To get started, fork your own copy and clone your chosen branch. To clone a branch you can run the following:

Clone the 'prod' branch (production)

git clone -b prod https://github.com/CodeChefVIT/ffcs.git

OR

Clone the 'staging' branch (staging)

git clone -b staging https://github.com/CodeChefVIT/ffcs.git

Run these commands on your bash/terminal and open it in a code editor of your choice.

Run the following to install all the dependencies:

yarn install

To start your development server run:

yarn run dev

Before getting started, please ensure that the .env file is properly configured. The .env.example file has been provided for your reference, with examples of environment variables to be listed.

License

License

Meet the Team

Meet the Team

CodeChef-VIT

Made with ❤️ by CodeChef-VIT

Personal VTOP catalogue

Use the browser extension to plan from the courses offered to your own VTOP account without maintaining data files for every branch. Download it from the alert shown by the highlighted My VTOP button or use public/extensions/ffcs-vtop.zip. Installation, storage/deletion behavior and limitations are documented in extension/README.md.

npm run extension:test
npm run extension:package

The tests check storage and origin boundaries, catalogue validation, and the real DOM parser/capture flow using local HTML fixtures. The DOM test uses a local Chrome/Edge installation (or FFCS_TEST_BROWSER) and is skipped if neither is found. To also run the planner UI test against a running app, set FFCS_TEST_APP_URL to its local URL before running npm run extension:test. A signed-in VTOP smoke test is still needed after installation.

Contributor data exporter

The standalone extension lives in extension/FFCS-Contributors. Install FFCS-Contributors.zip, connect a signed-in VTOP tab, select a school and enter a branch. It exports every available category automatically as src/data/<school>/<branch>/<VTOP-category>.ts, plus a generated index.ts. No category-to-file mappings are needed.

See its instructions. Build the package with npm run contributors:package and verify it with npm run contributors:test.

About

Stop fighting FFCS: Pick your favorite faculties and get a priority-based, clash-free timetable in seconds.

Topics

Resources

Code of conduct

Contributing

Stars

7 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages