A modern desktop application for managing your goals and objectives, built with Electron and TypeScript.
- π― Goal Management: Create, edit, complete, and delete your objectives
- π Integrated Calendar: Visualize your goals in a monthly calendar
- π¨ Customizable Themes: 6 different themes (Pink, Lavander, Blue) with light/dark modes
- πΎ Export/Import: Save and share your goals in JSON format
- π ICS Export: Export your goals with dates to calendar files
- ποΈ Bulk Delete: Delete all goals at once with confirmation
- Node.js 18+
- npm
- Git (optional, for cloning the repository)
- Clone the repository (or download the code):
git clone https://github.com/Alexdaz/GoalsPlanner
cd "GoalsPlanner"- Install dependencies:
npm install- Build the project:
npm run build- Run the application:
npm startnpm run build- Compiles TypeScript to JavaScriptnpm run build:watch- Compiles in watch mode (auto-compiles on save)npm start- Builds and runs the applicationnpm run dist- Builds and creates the executable for distributionnpm run dist:mac- Builds macOS executable (DMG and ZIP)npm run dist:win- Builds Windows executable (NSIS Installer)npm run dist:linux- Builds Linux executable (AppImage)
The application includes 6 different themes:
- π΅ Blue (light and dark)
- πΈ Pink (light and dark)
- π Lavender (light and dark)
Each theme automatically adapts to all components, including the custom title bar.
The application implements multiple security measures:
- β Strict JSON file validation
- β File size limits (5MB maximum)
- β Input data sanitization
- β Context Isolation and Sandbox enabled
- β Node Integration disabled
- β Type and data structure validation
- β Special character escaping in ICS exports
To create an executable:
npm run distExecutables will be generated in the dist/ folder:
- Linux: AppImage
- Windows: NSIS Installer
- macOS: DMG and ZIP (x64 and arm64)
- Add a goal: Click the floating button (FAB) β and select "Add goal"
- Fill in the title, description, and due date (all fields are required)
- Complete a goal: Click the "Complete" button on any card
- Delete a goal: Click the "x" button on any card and confirm deletion
- Delete all goals: FAB β "ποΈ Delete all goals" (with confirmation)
- View calendar: Click "π Show" in the header
- Change theme: Use the palette selector and the light/dark mode button
- Export goals: FAB β "πΎ Save JSON"
- Import goals: FAB β "π Import JSON"
This project is licensed under the MIT License. See the LICENSE file for more details.
This project uses several open-source libraries. For detailed license information of all third-party components, please see the THIRD_PARTY_LICENSES.txt file.
- Lit - Web Components framework
- Electron - Desktop application framework
- canvas-confetti - Confetti library
