Moodle+ is a mobile application (APK) designed to enhance the Moodle LMS experience by providing task planning, offline access, and secure local data storage. It improves student productivity and addresses common Moodle limitations such as slow server response and lack of offline functionality.
- Improve Moodle usability and quality of life features
- Enable offline access to previously loaded academic data
- Ensure user data privacy through encrypted local storage
- Follow clean architecture and proper documentation standards
- Device: Android Smartphone
- OS: Android 8.0 (Oreo) or higher
- RAM: 3GB minimum
- Storage: 150MB free space
- Android (APK Installation)
Before using Moodle+, you must have:
- An active Moodle account (e.g., UPHSL Moodle)
- Internet connection (required for first-time login and data synchronization)
- Open the Google Drive link:
https://drive.google.com/file/d/1jtb6bDSBIH8yBBkZP60irOmozBmeJ0Pz/view - Tap Download
- If a warning appears, tap "Download anyway"
Android blocks apps outside the Play Store by default.
- Go to Settings
- Navigate to:
Apps → Special App Access → Install Unknown Apps - Select the app you used to download the APK (e.g., Chrome or File Manager)
- Enable "Allow from this source"
- Open your Downloads folder
- Tap the downloaded
.apkfile - Tap Install
- Wait for installation to complete
- Tap Open after installation
OR - Find Moodle+ in your app drawer
- Only install APK files from trusted sources
- You may disable "Allow from this source" after installation for better security
- Open the app
- Enter your Moodle credentials
- Complete authentication if required
- View enrolled courses
- Navigate through academic tools using the mobile interface
- Gradebook → View and track grades
- Calendar → Monitor deadlines and schedules
- Backlog → Manage tasks and requirements
Shows user authentication using Moodle credentials.
Allows new users to create an account and initialize local storage.
Displays enrolled courses and quick access to features.
Allows users to track grades and academic performance.
Displays schedules, deadlines, and upcoming activities.
Helps users organize pending academic tasks.
- User Authentication – Secure login using Moodle credentials
- Dashboard Interface – Central hub for accessing all features
- Grade Tracking – Monitor academic performance
- Calendar Integration – View important deadlines
- Task Management (Backlog) – Organize academic workload
- Offline Access – Access cached data without internet
The system follows a Hybrid Client-Side Architecture, where most processing is done locally on the mobile device.
- Mobile UI (Dashboard, Courses, Files)
- Handles user interaction
- Auth Controller
- Course Controller
- File Controller
Responsibilities:
- Process user actions
- Manage application flow
- Auth Service
- Moodle Service
- Cache Service
Responsibilities:
- Handle authentication
- Fetch Moodle data
- Manage caching
- Moodle API (Primary source)
- Local Storage (Encrypted)
Responsibilities:
- Store and retrieve data
- Reduce API calls
- UI → Controller → Service → Data Layer → Response → UI
- User launches the app
- User logs in using Moodle credentials
- Credentials are verified
- Authentication is completed
- User gains access to the app
- User opens Courses
- Request sent to Controller
- Controller calls Moodle Service
- Data fetched from:
- Moodle API (if online), or
- Local Storage (if cached)
- Data displayed
Moodle+ follows a Local-First Privacy Model:
-
No External Database
User credentials and academic data are NOT stored on remote servers -
Encrypted Local Storage
Sensitive data is encrypted before being stored on the device -
No Third-Party Sharing
The app does not transmit or share personal data externally -
User Data Control
Users can clear app data anytime via device settings
This design aligns with the Philippine Data Privacy Act (RA 10173).
- Ensure "Install Unknown Apps" is enabled
- Check if your Android version meets requirements
- Verify Moodle credentials
- Check if Moodle server is accessible
- Ensure stable internet connection
- Restart the app and try again
- Make sure initial sync was completed
- Try logging out and logging back in
- Go to the repository Issues page
- Click New Issue
- Provide:
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if possible)
- Tag your issue as
enhancement
- Use GitHub Discussions or Issues for communication
Separation of Concerns (SoC)
The team has strictly separated the Data Acquisition layer from the Presentation layer. By using the Web Extension as an exclusive bridge for fetching data, the core productivity features (like the GWA calculator and Task Manager) remain independent of the Moodle server's unstable connectivity. This ensures that even if the Moodle site is slow, the user's local productivity dashboard remains functional.
- Security by Design (Local-Only Policy)
- To address the risk of credential theft, the architecture applies a strict "Local-Only" data principle. No External Database: Unlike traditional web apps, this system does not maintain a centralized database for student data.
- Encryption: All sensitive academic records are encrypted and stored solely within the user's browser environment. This minimizes the attack surface and ensures compliance with the Philippine Data Privacy Act (RA10173).
This project is currently under active development. Features and architecture may evolve as the project progresses.






