Since mid-2020, owing to the pandemic, in-person classes have been done away with, and e-learning has been at the forefront. Hence, professors and educators now share study resources and assignments with their students using various e-learning platforms, the top 3 being Google classroom, LMS, and MS Teams. Since there isn't a single common platform for a particular college, students have to keep track of all three platforms to see their assignments, deadlines, and study resources. Naturally, they are bound to miss a thing or two. Hence, we have developed a centralized platform that will scrape and display all the resources and assignments posted on LMS and Google classroom. Therefore, students don't need to browse through various e-learning platforms to keep track of their courses.
The project uses Selenium and BeautifulSoup for web automation and scraping. The scraped data is served to the user over a webapage using Flask.
- Frontend - HTML, CSS, JavaScript, Bootstrap
- Backend - Flask, Selenium, Beautifulsoup
GET /home: Get details for all subjects
GET /subject/<string:id>: Get info about the specific subject
GET /assignments: Get info about all submissions (pending + turned in)
POST /assignments/<assignment:id>: Submit a file for the specific assginment (works only for LMS for now)
- Integrating MS Teams
- Add pagination in frontend
- Allow users to submit assignments for google classroom
- Scrape tesxt based announcements on Google classroom
- Building a 3 layer architecture
- Notify users when assignment is submitted
- Add logging
Install the required packages:
pip install -r requirements.txt
Running the flask server (debug mode disabled):
$ python3 app.py
To use debug mode we need to deactivate the reloader for the application to work smoothly
Linux:
$ export FLASK_APP="app:app"
$ export FLASK_ENV="development"
On Windows:
$ set FLASK_APP="app:app"
$ set FLASK_ENV="development"
Running the flask server (in no reload mode - in normal mode the server is buggy):
$ flask run --no-reload
Subsequently, you will be asked to provide your login credentials (for LMS and Google classroom) and select the subjects you have enrolled in.
Then go check out 127.0.0.1:5000