metakgp / gyft

Get Your Freaking Timetable
https://gyft.metakgp.org
MIT License
56 stars 60 forks source link

Add more holidays #97

Closed proffapt closed 11 months ago

proffapt commented 1 year ago

Currently the timeline only includes endsems and midsems. We can extend that to:

Vayras commented 1 year ago

@proffapt Can I work on This issue? , also can you tell me more about the project

chirag-ghosh commented 1 year ago

Should we include institute holidays? There are certain holidays whose dates might change according to the moon. So I would rather have my classes shown in a holiday than no class schedule on a working day.

Thankfully those holidays have asterisks. So we may be able to handle those cases

proffapt commented 1 year ago

@proffapt Can I work on This issue? , also can you tell me more about the project

Yes, you can implement the second part, the first includes an internal academic calendar which can be handled later on, moving gradually.

About the project.. IIT Kharagpur has an ERP (Enterprise Resource Planning - can google about what and why it is if you wish), there it has timetable for us. What this project does is scrapes the timetable from specific endpoint and some other required sorcery to get the course names from course codes. Then it creates data.txt file for this information which later is prompted to be converted into an ICS file.

It has recurrance mechanism which repeats the timetable for a week except for the holiday timeline/days currently they include only Mid semester exams and End Semester exams. As mentioned there are holidays listed on public portal, which needs to be scrapped - providing special handling to the cases with * i.e., they are subject to change.

Vayras commented 1 year ago

@proffapt Thank you for your information , I understand what needs to be done , I have currently build a web scraper that scrapes the link given in the second part and stores that into json format , to run the project I do need a roll no and the security answer can you help me with that?

proffapt commented 1 year ago

@proffapt Thank you for your information , I understand what needs to be done , I have currently build a web scraper that scrapes the link given in the second part and stores that into json format , to run the project I do need a roll no and the security answer can you help me with that?

I don't think I would be able to provide you with that. Try to test without user's credentials, what I can do is provide you with a data.txt file which will bypass the need to login - if you have the latest iteration of project pulled.

{
    "Monday": {
        "8:0:AM-8:55:AM": [
            "IM31006",
            "208 (E1)",
            2,
            "SIMULATION"
        ],
        "10:0:AM-10:55:AM": [
            "IM31005",
            "310 (QEDM-Seminar Room)",
            1,
            "QUALITY DESIGN AND CONTROL"
        ],
        "11:0:AM-11:55:AM": [
            "AI42001",
            "NR411",
            1,
            "MACHINE LEARNING FOUNDATIONS AND APPLICATIONS"
        ],
        "12:0:PM-12:55:PM": [
            "IM31203",
            "208 (E1)",
            1,
            "PRODUCTION PLANNING AND CONTROL"
        ],
        "2:0:PM-2:55:PM": [
            "IM39005",
            "301 (QDC Lab)",
            3,
            "QUALITY DESIGN AND CONTROL LABORATORY"
        ]
    },
    "Tuesday": {
        "8:0:AM-8:55:AM": [
            "AI42001",
            "NR411",
            2,
            "MACHINE LEARNING FOUNDATIONS AND APPLICATIONS"
        ],
        "10:0:AM-10:55:AM": [
            "IM31203",
            "208 (E1)",
            2,
            "PRODUCTION PLANNING AND CONTROL"
        ],
        "12:0:PM-12:55:PM": [
            "IM31006",
            "208 (E1)",
            1,
            "SIMULATION"
        ],
        "2:0:PM-2:55:PM": [
            "IM39005",
            "301 (QDC Lab)",
            3,
            "QUALITY DESIGN AND CONTROL LABORATORY"
        ]
    },
    "Wednesday": {
        "8:0:AM-8:55:AM": [
            "IM31005",
            "310 (QEDM-Seminar Room)",
            2,
            "QUALITY DESIGN AND CONTROL"
        ],
        "12:0:PM-12:55:PM": [
            "IM31201",
            "208 (E1)",
            1,
            "SUPPLY CHAIN MANAGEMENT"
        ],
        "2:0:PM-2:55:PM": [
            "IM39005",
            "301 (QDC Lab)",
            3,
            "QUALITY DESIGN AND CONTROL LABORATORY"
        ]
    },
    "Thursday": {
        "8:0:AM-8:55:AM": [
            "IM31203",
            "208 (E1)",
            1,
            "PRODUCTION PLANNING AND CONTROL"
        ],
        "10:0:AM-10:55:AM": [
            "IM31005",
            "310 (QEDM-Seminar Room)",
            1,
            "QUALITY DESIGN AND CONTROL"
        ],
        "11:0:AM-11:55:AM": [
            "IM31201",
            "208 (E1)",
            1,
            "SUPPLY CHAIN MANAGEMENT"
        ],
        "2:0:PM-2:55:PM": [
            "AI42001",
            "NR411",
            3,
            "MACHINE LEARNING FOUNDATIONS AND APPLICATIONS"
        ]
    },
    "Friday": {
        "9:0:AM-9:55:AM": [
            "IM31201",
            "208 (E1)",
            2,
            "SUPPLY CHAIN MANAGEMENT"
        ],
        "2:0:PM-2:55:PM": [
            "IM39201",
            "101 (ORDS Lab)",
            3,
            "SIMULATION LAB"
        ]
    }
}

This is the file, saving it in the root directory of the project will bypass the need to enter credentials - just type n when prompted to overwrite data.txt.

Vayras commented 1 year ago

@proffapt Thank you for this , If this does not work somehow , I will create a private repository for the scraper and add you so It could be useful for this project

proffapt commented 1 year ago

@proffapt Thank you for this , If this does not work somehow , I will create a private repository for the scraper and add you so It could be useful for this project

I am pretty sure it will work (>ᴗ•)

Vayras commented 1 year ago

@proffapt that worked thank you : )

proffapt commented 1 year ago

@Vayras any updates?

Vector-013 commented 1 year ago

@proffapt I am able to scrape the dates of the holidays from the site and add them to the ICS file, But I could not find any source on how to remove events from the file. (I'll need to remove the time table events on a holiday other than adding the holiday). Could you please help with that?

proffapt commented 1 year ago

https://github.com/metakgp/gyft/blob/master/del_events.py @Vector-013 this is the file you shuold be looking at to achieve what you wish to

Vector-013 commented 1 year ago

Thanks a lot , I will check that out

Vector-013 commented 1 year ago

I have made some edits in the code and currently my calendar looks like this upon adding the ICS file. Screenshot 2023-09-30 001213 Screenshot 2023-09-30 001230 Screenshot 2023-09-30 001244 image

Also added some code specifically for the Autumn break as it was not there in the website of IIT KGP holidays. One issue currently is for 2 holidays in this semester (2 October and 28 September) are having both the time table and the holiday displayed together. Other holidays are cleared in the Semester.

Another issue is the google API choice in gyft.py is giving me an error. Am I also supposed to make some changes in the API part of the code to incorporate the changes of the ICS file?

proffapt commented 1 year ago

@Vector-013 can you join https://bit.ly/metakgp-slack we can better resolve your queries there. Thanks for the work!

Vector-013 commented 1 year ago

Thank you! It is requested if possible to assign the issue to my account https://github.com/ojasdubey as it has pro features provided by iit kgp. Sorry about the inconvinience.

proffapt commented 1 year ago

For that you would have to comment or commit here using that account. Also ask your query on slack channel

proffapt commented 1 year ago

updates?

Vector-013 commented 1 year ago

Currently trying to figure out a method to break the recursion on holidays in the Google api calendar (like for the ics file) . Have setup the feature on my device. Also found a few sources to refer to , should make progress by tomorrow

proffapt commented 1 year ago

@Vector-013 is it completed?

Vector-013 commented 1 year ago

Yea I made one pr , the code in that works fine. Although Ashwin has also said to correct to automate the procedure to check current semester ongoing which I'll change. Abhi end sem ke baad :_(

proffapt commented 1 year ago

yeah, great!

Vector-013 commented 12 months ago

Hey I corrected that part too. please check it out

Kanomus commented 11 months ago

Is this issue resolved? I used the most recent version yesterday, and classes still showing up on holidays like 2nd October.

ashwinpra commented 11 months ago

Hey @Kanomus, the PR corresponding to the issue had been in progress, and it has been merged now :) Don't worry though, you can look into the other issues in gyft, or even other projects under MetaKGP!