LMS Alternative is a robust desktop application designed to streamline the academic workflow for students and educators. Built with Flet (Python), it functions as a lightweight Learning Management System (LMS) that integrates seamless file management with essential academic tools.
By layering organizational features over Google Drive, this application provides a centralized dashboard where users can manage assignments, track deadlines, and organize course materials without the complexity of traditional LMS platforms. Whether you need to submit assignments, manage shared resources, or simply keep your digital workspace tidy, LMS Alternative offers a simple, efficient solution.
This application serves as a lightweight alternative to traditional Learning Management Systems (LMS), specifically designed to solve common student challenges:
- ๐ Centralized Assignment Management โ No more hunting through countless Google Drive links for different subjects and assignments
- โ To-Do List with Smart Notifications โ Track assignments with due dates and get timely reminders before and after deadlines
- โฐ Time Tracking โ See remaining time for each assignment at a glance
- ๐ Quick Link Access โ Organize and access all your course folders and assignment submission links in one place
- ๐ Subject-Based Organization โ Keep everything organized by subject/course for easy navigation
Perfect for students who need a simple, efficient way to manage their academic workload without the complexity of full-featured LMS platforms.
- ๐ Assignment To-Do List โ Create and manage assignments with due dates
- ๐ Smart Notifications โ Get reminders before and after assignment due dates
- โฑ๏ธ Time Remaining Tracker โ Visual countdown showing time left to complete tasks
- ๐ Subject Organization โ Organize assignments and folders by course/subject
- ๐ Assignment Link Management โ Store and quickly access Google Drive submission folders for each assignment
- ๐ Google OAuth Authentication โ Secure login using your Google account
- ๐ Browse & Navigate โ Explore your Google Drive folders with an intuitive interface
- ๐ Search โ Quickly find files and folders across your Drive
- ๐ Shared Drives Support โ Access and browse shared drives
- ๐ Paste Drive Links โ Open folders/files directly by pasting Google Drive links
- โญ Favorites โ Save frequently accessed folders organized by category
- ๐ File Operations โ Create folders, upload files, rename, and delete
- ๐พ Saved Links โ Keep a list of important Drive links for quick access
- ๐ Caching โ Smart caching for improved performance and reduced API calls
- Python 3.8 or higher
- Google Cloud Platform project with Drive API enabled
- OAuth 2.0 credentials (
credentials.json)
git clone https://github.com/ASTRALLIBERTAD/LMS-alternative.git
cd capstonepython -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activatepip install flet google-auth google-auth-oauthlib google-api-python-client
-
Go to Google Cloud Console.
-
Create a new project.
-
In the left sidebar, go to APIs & Services โ Library.
-
Search for Google Drive API.
-
Click on Google Drive API โ Enable.
-
Go to APIs & Services โ Credentials.
-
Click Create Credentials โ OAuth 2.0 Client ID.
-
If prompted, configure the OAuth consent screen:
- Select External for testing or Internal if only for your organization.
- Fill in App Name, User Support Email, and Developer Email.
- Save and continue (you can skip scopes for now for basic setup).
-
Back to Create OAuth 2.0 Client ID:
- Select Desktop App as the application type.
- Give it a name (e.g., MLS-alternative).
- Click Create.
-
After creating, click Download JSON.
-
Save it in your project folder, e.g., services/credentials.json.
-
In the left sidebar:
- APIs & Services โ OAuth consent screen
-
Scroll down to the section Test users.
-
Click Add users.
-
Enter the Gmail accounts that will be allowed to use your OAuth app in testing mode:
- You can add your own Gmail.
- You can add multiple test accounts if needed.
Run the application:
flet main.py- Click "Login with Google"
- A browser window will open for Google authentication
- Grant the requested permissions
- You'll be redirected to the main dashboard
| Feature | Description |
|---|---|
| Your Folders | Browse folders in your personal Drive |
| Shared Drives | Access shared/team drives |
| Paste Links | Open Drive links directly by pasting them |
| Search | Find files and folders by name |
| New | Create new folders or upload files |
| Favorites | Save folders organized by subject/category |
capstone/
โโโ main.py # Application entry point
โโโ README.md # Project Overview
โโโ saved_links.json # Saved Drive links (auto-generated)
โโโ favorites.json # Saved favorites (auto-generated)
โโโ services/
โ โโโ auth_service.py # Google OAuth authentication
โ โโโ drive_service.py # Google Drive API operations
โ โโโ credentials.json # OAuth credentials (you provide)
โ โโโ token.pickle # Auth token (auto-generated)
โโโ ui/
โ โโโ dashboard.py # Main dashboard UI
โ โโโ login.py # Login screen
โ โโโ custom_control/ # Custom UI components
โโโ venv/ # Virtual environment
The application stores configuration in the following files:
| File | Purpose |
|---|---|
services/credentials.json |
Google OAuth credentials (required) |
services/token.pickle |
Authentication token (auto-generated) |
saved_links.json |
Saved Drive links |
favorites.json |
Favorite folders by category |
- OAuth tokens are stored locally in
token.pickle - Credentials never leave your device
- Add the following to
.gitignore:services/credentials.json services/token.pickle
The app supports pasting links in these formats:
https://drive.google.com/drive/folders/FOLDER_IDhttps://drive.google.com/file/d/FILE_IDhttps://drive.google.com/...?id=ID
We welcome contributions! Follow these steps to contribute to this project:
Click the Fork button at the top-right of this repository to create your own copy.
git clone https://github.com/<your-username>/LMS-alternative.git
cd LMS-alternative3.1 Create Virtual Environment:
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate3.2 Install Dependencies:
pip install flet google-auth google-auth-oauthlib google-api-python-client3.3 Set Up Google Cloud Credentials
-
Go to Google Cloud Console.
-
Create a new project.
-
In the left sidebar, go to APIs & Services โ Library.
-
Search for Google Drive API.
-
Click on Google Drive API โ Enable.
-
Go to APIs & Services โ Credentials.
-
Click Create Credentials โ OAuth 2.0 Client ID.
-
If prompted, configure the OAuth consent screen:
- Select External for testing or Internal if only for your organization.
- Fill in App Name, User Support Email, and Developer Email.
- Save and continue (you can skip scopes for now for basic setup).
-
Back to Create OAuth 2.0 Client ID:
- Select Desktop App as the application type.
- Give it a name (e.g., MLS-alternative).
- Click Create.
-
After creating, click Download JSON.
-
Save it in your project folder, e.g., services/credentials.json.
-
In the left sidebar:
- APIs & Services โ OAuth consent screen
-
Scroll down to the section Test users.
-
Click Add users.
-
Enter the Gmail accounts that will be allowed to use your OAuth app in testing mode:
- You can add your own Gmail.
- You can add multiple test accounts if needed.
-
Click Save.
git checkout -b feature/amazing-featureImplement your feature or fix a bug.
git add .
git commit -m "Add amazing feature"git push origin feature/amazing-featureGo to your fork on GitHub and click Compare & Pull Request to submit your changes to the original repository.
Tips: Keep branch names descriptive (feature/... or fix/...), write clear commit messages, and make sure your code is tested before submitting.
This project is licensed under the MIT License.
See LICENSE for more information.
- Flet โ Cross-platform UI framework for Python
- Google Drive API โ Cloud storage API