8000 GitHub - rajverma328/COC-IITK
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

rajverma328/COC-IITK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

COC-IIT-K: Clash Of Courses - IIT Kanpur

Prefer Dark Mode Please

Welcome to COC-IIT-K, short for Clash Of Courses IIT Kanpur, a web application designed to streamline and simplify your course timetable management. Whether you're dealing with course conflicts or just trying to keep your schedule organized, this tool provides an intuitive interface to help you manage your academic life at IIT Kanpur.

Live version available : https://coc-iitk.onrender.com/

Description

COC-IIT-K is a powerful tool designed to help IIT Kanpur students efficiently create their academic schedules. πŸŽ“ It offers an intuitive and user-friendly website 🌐 that automatically navigates through over 700+ courses πŸ“š across 20+ departments, ensuring that none of the selected courses clash with the user's existing schedule. ⏰ Built with a Flask backend, 🐍 COC-IIT-K provides comprehensive course coverage, handling all available courses without exceptions, making the scheduling process seamless and stress-free. πŸŽ‰

MOTIVATION: At IIT Kanpur, the heavy emphasis on competitive programming often sidelines real coding, creating an isolating environment. To navigate this, I turned to my side project, COC-IIT-K. This endeavor allows me to channel my passion for coding into something valuable for my peers, reminding me that coding is about creativity and problem-solving, not just competition.

Setup

1. Clone the repository

git clone https://github.com/rajverma328/COC-IITK.git

It is optimised to run with debugging off on your local server, you can change by modiying app.py

2. Prepare Course CSV

Please follow the steps mentioned here to procure the course data from here and place it in the cloned repository

3. Update data (if needed)

bash update_data.sh

Run the above code to update the .json files

4. Run the Server

bash launch.sh

Run the above code to view the web-app work on http://127.0.0.1:5000/

Project Structure


COC-IIT-K  
β”‚  
β”œβ”€β”€ ASSETS/  
β”‚   β”œβ”€β”€ courses.json  
β”‚   β”œβ”€β”€ details.json  
β”‚   └── README.md  
β”‚  
β”œβ”€β”€ BACK_END/  
β”‚   β”œβ”€β”€ app.py  
β”‚   β”œβ”€β”€ check_clash.py  
β”‚   β”œβ”€β”€ course_schedule_manager.py  
β”‚   └── README.md  
β”‚  
β”œβ”€β”€ Extract_course_data/  
β”‚   β”œβ”€β”€ data_generator.py  
β”‚   β”œβ”€β”€ data_interpreter.py  
β”‚   └── README.md  
β”‚  
β”œβ”€β”€ FRONT_END/  
β”‚   β”œβ”€β”€ index.html  
β”‚   β”œβ”€β”€ styles.css  
β”‚   β”œβ”€β”€ scripts.js  
β”‚   β”œβ”€β”€ (OTHER_OBJECTS)                 # images & stuff  
β”‚   └── README.md  
β”‚  
β”œβ”€β”€ RECOMMENDATION/  
β”‚   └── README.md  
β”‚  
β”œβ”€β”€ Playground/  
β”‚   β”œβ”€β”€ test.html  
β”‚   └── README.md  
β”‚  
β”œβ”€β”€ LICENSE
β”œβ”€β”€ Course_schedule_from_pingala.csv    # CSV taken from Pingala
β”œβ”€β”€ updata_data.sh                      # Called to update
β”œβ”€β”€ launch.sh                           # To launch the webapp on localhost:5000
└── README.md                           # This README file

The ASSETS folder contains important JSON files used for managing course data in the repository. Below is a description of the contents of this folder:

Files

  • courses.json: This file includes course information categorized by branch. It organizes courses based on different branches, making it easier to manage and access courses specific to each branch.

  • details.json: This file contains detailed information about the courses, such as time, credits, and other relevant details. It provides a comprehensive overview of each course, including additional attributes that are important for course management and scheduling.

  • You can view or download these files directly using the links below:


The BACK_END folder contains the core backend scripts used for managing the application's functionality. Below is a description of the contents of this folder:

Files

  • app.py: This is the main application script responsible for handling the core backend operations and routing within the project.

  • course_schedule_manager.py: Manages the logic related to course scheduling, including processing times, dates, and other relevant scheduling data.

  • You can view or download these files directly using the links below:


Important

This folder contains code for updating json data

Files

  • data_generator.py: This files contain the code that is called to read csv and update the json file.

  • data_interpreter.py: This file act as a package to interpret data wherever required in the data_generator.py file.

  • You can view or download these files directly using the links below:


The FRONT_END folder contains all the essential files for the frontend of the project. Below is a detailed description of each item in this folder:

Files

  • index.html: The main HTML file for the project. This file serves as the entry point for the application, defining the structure and content of the web page.

  • styles.css: The CSS file used for styling the HTML content. It includes all the styles and design elements that determine the visual appearance of the web page.

  • scripts.js: The JavaScript file that contains the logic and functionality for the frontend. It handles interactions, dynamic content, and other client-side behaviors.

  • (OTHER_OBJECTS): This directory includes various assets such as images, icons, and other resources used in the frontend. It is organized to keep the media files separate from the core HTML, CSS, and JavaScript files.

  • You can view or download these files directly using the links below:



The PLAYGROUND folder is your experimental space πŸš€! It's where all the magic happens, from major milestones to all the little tweaks and fidgeting along the way. Whether it's testing new ideas, refining features, or just having some fun with code, this is where creativity meets functionality. Dive in to see the journey, trials, and triumphs that have shaped the project!πŸŽ¨πŸ”§


Future Work

  • Include session-management to make all users independent of each other, and have a session last for a user even after closing the request, as cookies
  • The courses you select provides a prior to what kind of courses you would want to take up, which should be recommended first. Make the selection bar more intelligent
  • The course code is not mapped to departments well (Ex: CSE dept. offers CSXXX course and not CSEXXX)
  • The codebase is not memory optimized, which leads to delays for every usage due to free hosting service used
  • The code base is frontend heavy and React/CSS pre-processors may be used for optimisation
  • The frontend clash detection system fails below 75% zoom and show clashes b/w close by classes due to improper em handling while zooming

Note

If you found solution to above or face any new prob. Report it to me πŸ€—

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0