A desktop-based Internship Management System developed during my internship. The application is designed to help manage internship requests, department approvals, task progress, certificate requests, and administrative workflows from a dedicated desktop environment.
The system supports both online and offline usage. Users can continue working when internet access is unavailable, and once connectivity is restored, the application synchronizes pending changes with the server so work can continue without interruption.
- Desktop application built with Electron
- Offline-first workflow with local data storage
- Automatic synchronization when internet connectivity is available
- Role-based access for administrative users
- Internship request approval and rejection workflow
- Task monitoring and completion tracking
- Certificate request review and approval
- Department and staff management
- File synchronization support
- Windows desktop installer support
The goal of this project is to provide a reliable desktop version of an internship management platform. Since internet connectivity may not always be available, the application allows staff to continue working locally.
When the system comes back online, pending changes are synchronized with the server to keep local and central data aligned.
The application supports multiple administrative roles with separate permissions and dashboards:
- Super Admin
- Admin
- Sub Admin
- Moderator
- View internship applications
- Search and filter requests
- Approve or reject applications
- View applicant and internship details
- Track approval status across multiple levels
- View assigned internship tasks
- Track submitted and pending tasks
- Review task completion status
- Approve or reject submitted work
- Review certificate requests
- Approve or reject certificate applications
- Maintain certificate-related internship details
- Manage departments
- Manage department-level users
- View role-specific user lists
- Support administrative staff workflows
The application is designed so work does not stop when the internet is unavailable.
When offline:
- Data is stored locally
- User actions are recorded for later sync
- Files are tracked for synchronization
- Staff can continue working with available records
When online:
- Pending local changes are synchronized with the server
- File changes are synchronized
- Updated server records are refreshed in the desktop app
- Sync status is updated locally
This makes the system suitable for environments where network availability may be inconsistent.
- Electron
- Node.js
- JavaScript
- HTML
- CSS
- SQLite
- Bootstrap-based UI
- Electron Builder
- Node.js
- npm
- Windows is recommended for installer builds
Install the required dependencies:
npm installStart the desktop app in development mode:
npm startGenerate the desktop installer:
npm run buildThe application uses local SQLite storage to support offline operation. Local data is used while offline and synchronized with the server when internet connectivity is available.
The synchronization system is responsible for:
- Fetching updated records from the server
- Saving server updates locally
- Tracking changes made while offline
- Uploading pending file changes
- Refreshing local data after a successful sync
This repository contains the desktop application version of the Internship Management System.