iivexii / lgu-timetableapi Goto Github PK
View Code? Open in Web Editor NEWUnofficial API for the timetable of Lahore Garrison University.
Home Page: https://lgutimetable.online/developer
License: MIT License
Unofficial API for the timetable of Lahore Garrison University.
Home Page: https://lgutimetable.online/developer
License: MIT License
Refector the timetable module to make it a model.
It is very costly to access the database every time the user require same data because we are running some loops to shape the data that is the requirement of the user.
To save time and to reduce work load, we can implement Redis to store processed data for some time.
Finding rooms via specific time is not that much flexible. If the class is free from 8:00 AM to 9:30 AM but we search rooms via time=9:00 then it will return that room.
โ Make the user solve the reCaptcha
โ send the solved reCaptcha id with the request to login
This page Room_slots.php on official website provide a list of days with which, we can find schedule of each classroom. This list of days have value that cannot be predicted. We have to scrap this list and then proceed to find the room schedule.
Scrapping classroom schedules is simple but the approach I am using in this project is:
So for the sake of this, first of all I will scrap all the rooms and store it in a separate collection and then scrap the room timetables and link them with rooms.
Description
If it's you are looking to contribute, this issue will get you started.
Technologies Used
On demand feature
This route will be useful for creating options on front-end.
This issue is for you if you have never contributed to open source project or just started your journey in it. I encourage you to fix this and make a pull request. Here is the image of document that needs to be fixed.
Replace the download link with this https://github.com/IIvexII/LGU-TimetableAPI/releases
Since we're providing LGU APIS through from website this repository can be ambiguous for users that's why I propose to add a no longer maintained
alert and redirect to our website on the top of the readme.md
Database Populator leads to a time consuming and resource hungry solution for populating database. To acquire data from
timetable.edu.pk
, it requires 598 requests to be sent. The whole process takes about 3-4 minutes.
To tackle this problem, we can provide a set of APIs for updating specific data.
This API route will provide class rooms that are available to chill.
Credit
with Technologies
This software uses the following open source packages:
to
Technologies used in this project are:
Or you can use your line that is more appropriate at this point.
The issue occurred when I separate timetable route to update data individually.
Improvements Required
The fetching of data is too messy so, seperating the whole logic of fetching them as models so it become easy to fetch via methods like getById()
and getByName()
.
Due to the lack of time, new features are written with very unorganized and messy code. Before we proceed any further, the code should be refactored as required.
Main Issue
From a user perspective its very hard method to get the timetable set on their calendar or to get the timetable for their app/software because he has to get the session every time he needs to perform a function.
Performance Issue
Performance is the biggest issue of this project.
Solution
I have decided to use mongodb to boost the performance and to solve the session issue. The user can only request when the semester timetable is changed.
TODO
Extend a new parameter to out the NB or OB in freeRooms route.
Metadata
Example:
{
'1st Semester Fall 2021/ Fall 2022': {
BSCS: ['A', 'B', 'C', 'D', 'E'],
BSSE: ['A', 'B', 'C']
},
'2nd Semester Spring 2020/ Fall 2022': {
BSCS: ['A', 'B', 'C', 'E'],
BSSE: ['A', 'B', 'C']
}
}
There is currently no limit on user request that can cause damage to the quality of the system in the future when we will have many users interacting with the API (By users I mean the platforms built on top of this API). An attacker can also DOS or DDOS the system by sending bogus requests to take the server down. Although it is not affecting us now but will do in the near future when the system is more mature.
While I am working on the new features of this project, I need someone who can document the routes, that I recently created, in the ReadMe.md.
/days
, /rooms
and /freeRooms
All routes support GET method.
/freeRooms
route can have day and time as parameter but both of them are optional. All other routes are parameter less.
/days
- return all days of week with their id used in official timetable
/rooms
- return all rooms available in the university
/freeRooms
- give the rooms that doesn't not have lecture in it
This will allow it to work as a allFreeRooms\ route as well and more.
https://lgu-timetable-api.deta.dev/freeRooms?day=Monday&time=8:00
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.