Lesson 21 of 28 · javascript
Capstone Project – Cross‑Platform Note‑Taking App
Duration: 30 mins
Capstone Project – Cross‑Platform Note‑Taking App
In this project you will combine everything you’ve learned.
Requirements
- Create, edit, and delete plain‑text notes.
- Store notes in electron‑store (JSON file in the user data folder).
- Use IPC to fetch and persist notes – UI never touches the file system directly.
- Add a system tray icon with a menu: Show, New Note, Quit.
- Implement auto‑update using
electron-updater(you can point to a GitHub repository you create for the demo). - Package the app for Windows (NSIS), macOS (DMG) and Linux (AppImage) with
electron-builder. - Sign the macOS build (you can skip actual notarization for the demo, but include the steps).
- Write unit tests for the main‑process store logic using Jest and E2E tests for the UI with Playwright.
Suggested Folder Layout
my‑notes/
├─ main/ # main‑process code
│ └─ main.js
├─ preload/ # bridge script
│ └─ bridge.js
├─ renderer/ # UI (plain HTML/JS or any framework)
│ ├─ index.html
│ └─ renderer.js
├─ package.json
└─ electron-builder.yml (optional custom config)
When you finish, run npm run build and you should see three installers in dist/. Submit the entire project folder (source + build config + test files) as a zip.