Git Product home page Git Product logo

gyft's Introduction

Contributors Forks Stargazers Issues MIT License Wiki


GYFT

Get Your Freaking Timetable
Report Bug · Request Feature

Table of Contents

About The Project

Gets your timetable from ERP and adds it to your Google Calendar or gives you an ICS file which you can add in any common calendar application.

Note All updates to this repo should reflect, with appropriate refactorisation, in gyft-serve

(back to top)

Getting Started

To set up a local instance of the application, follow the steps below.

Prerequisites

The following prerequisites are required to be installed for the project to function properly:

  • Python 3
  • IIT-KGP Student ERP Account

(back to top)

Installation

Now that the environment has been set up and configured to properly compile and run the project, the next step is to install and configure the project locally on your system.

  1. Clone the repository
    git clone --depth 1 https://github.com/metakgp/gyft
  2. Change the current directory to the project directory
    cd gyft
  3. Install the dependencies
    pip install -r requirements.txt

(back to top)

Usage

  1. Run the script

    python3 gyft.py
  2. Enter your roll number, password, security answer, and OTP (if required) when prompted

  3. Now you can choose between 2 options, which will be prompted to you:

    • Add to Google Calendar:

      • For this, you have to get your credentials.json and save it as client_secret.json to the current directory by following the Step 1 from here
      • Also note that adding to Google Calendar requires an Internet connection
    • Generate ICS file:

      • This will generate an ICS file which you can import into any calendar application.
      • For importing to Google Calendar, follow the instructions given here.

  • Optional flags:
    • To delete all the recurring events added by the CLI or GYFT Web Application (uses a property of recurrence to identify events to delete), you can run gyft.py with the --del-events flag:
      python3 gyft.py --del-events
    • To specify the output file (.ics) to which the ICS file will be written, use the --output flag.
      python3 gyft.py --output autumn_2023.ics

(back to top)

Development Notes

This project utilizes the iitkgp-erp-login package to handle ERP login functionality.

Updates To Be Made Each Sem

The following procedure is to be followed each new semester by the maintainer for updating GYFT to work properly.

  • Download the academic calendar for the particular year.
  • New semester dates need to be updated in utils/dates.py
  • The format for the date-time is (YYYY, MM, DD, HH, MM).
  • Raise a pull request once the dates are updated.

(back to top)

Contributing

Please read CONTRIBUTING.md guide to know more.

Maintainer(s)

gyft's People

Contributors

ashwinpra avatar devansh-bit avatar icyflame avatar thealphadollar avatar nishnik avatar shikharish avatar proffapt avatar vector-013 avatar icskzmrinal avatar rohitner avatar chirag-ghosh avatar xypnox avatar athityakumar avatar defcon-007 avatar dependabot[bot] avatar acakshay avatar godzilla5111 avatar ayushk4 avatar devadeut avatar harshkhandeparkar avatar kunalvrm555 avatar sahil-shubham avatar themousepotato avatar yashsirvi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.