A sample Online Learning Platform built using HTML, CSS, JavaScript, and Electron to provide a cross-platform desktop experience.
Make sure you have the following installed:
git clone https://github.com/jimitnick/Online-Learning-Platform.git
cd Online-Learning-Platform-
Navigate to the
indexdirectory:cd index -
Install dependencies:
npm install
-
Start the Electron app:
npm start
-
Ensure you’re in the
indexdirectory:cd index -
Run the following command:
npx electron-packager . Online-Learning-Platform --platform=win32 --arch=x64 --icon=icon.ico --overwrite
✅ This will generate a folder like Online-Learning-Platform-win32-x64 with your .exe file inside.
-
Run the following command (from the
indexdirectory):npx electron-packager . Online-Learning-Platform --platform=darwin --arch=x64 --icon=icon.icns --overwrite
✅ This will generate a folder like Online-Learning-Platform-darwin-x64 with the .app bundle for macOS.
⚠️ Note: Building for macOS from Windows is not supported. You must run this command on a macOS system.
To create a complete installer:
-
Install
electron-builderas a dev dependency:npm install --save-dev electron-builder
-
Update your
package.json:{ "name": "online-learning-platform", "version": "1.0.0", "main": "main.js", "scripts": { "start": "electron .", "build": "electron-builder" }, "build": { "appId": "com.eduprep.platform", "productName": "EduPrep", "directories": { "output": "dist" }, "files": [ "**/*" ], "win": { "target": "nsis", "icon": "icon.ico" }, "nsis": { "oneClick": false, "perMachine": true, "allowToChangeInstallationDirectory": true } } } -
Run the build script:
npm run build
📁 Your Windows .exe installer will be available in the dist/ folder.
Add the following to your package.json under the build section:
"mac": {
"target": "dmg",
"icon": "icon.icns"
}Then run:
npm run build📁 Your macOS .dmg installer will be available in the dist/ folder.
- HTML – Structure of the platform
- CSS – Styling and responsive design
- JavaScript – Logic and interactivity
- Electron – Desktop application framework
This project is for educational purposes only. You are free to use, modify, and enhance it as needed.