Project Category: Team Project (NUS Orbital Apollo 2025)
Local-first desktop AI assistant built with modern web technologies. Features task management, calendar integration, mood diary, and intelligent AI chat powered by Ollama. Cross-platform support with SQLite persistence and Supabase authentication.
Each theme provides a unique visual experience with synchronized AI personality:
Professional & Efficient
Bright & Encouraging
Devoted & Protective
Cool & Logical
Dynamic & Caring
Gentle & Supportive
Wingman features 6 distinct AI personalities that synchronize with your selected theme. Each personality has unique traits, communication styles, and emoji preferences:
Avatar | Name | Personality | Traits | Communication Style |
---|---|---|---|---|
![]() |
Lumen | Supportive Buddy | Optimistic, encouraging, warm | Positive reinforcement βοΈβ¨ |
![]() |
Umbra | Strategic Advisor | Analytical, direct, efficient | Minimal but insightful πβ‘ |
![]() |
Velvet | Devoted Companion | Intensely loyal, protective | Highly personalized πποΈ |
![]() |
Frost | Professional Assistant | Reserved, logical, professional | Analytical with care βοΈπ |
![]() |
Echo | Gentle Guide | Shy, soft-spoken, caring | Quiet encouragement πΈπ |
![]() |
Blaze | Dynamic Motivator | Initially distant, caring | Reluctant affection π€π |
Wingman uses a sophisticated dual-path architecture for handling both slash commands and natural conversations:
Intelligent conversations with personality-driven responses. Supports slash commands for instant data access (/t for tasks, /e for events, /d for diary, /u for users).
Complete task lifecycle with recurring tasks, priorities, and deadlines. Smart scheduling with AI-powered suggestions and automatic failure detection.
Daily mood tracking with sentiment analysis. Visual charts and insights for mental wellness monitoring with privacy-first local storage.
Smart notification system with 30-minute and 5-minute reminders. Continues running when app is minimized or closed using Electron's system tray.
Local-first architecture with SQLite database. Optional Supabase sync for cross-device access. Your data stays completely private on your machine.
Beautiful themes with unique personalities. Each theme has synchronized AI personality, avatar, and custom color schemes with smooth transitions.
Event-driven notification system with three complementary layers for reliable reminders:
Wingman supports instant data access through slash commands for quick information retrieval:
/t - Tasks /e - Events /d - Diary /u - Users
/t /date 2025-01-15
- View all tasks scheduled for January 15, 2025/e /month jan
- Display all events happening in January/d /mood happy
- Show diary entries where you felt happy/u
- List all registered users in the system/more
- Load additional results (pagination support)Architected the complete Ollama integration system with model switching, context management, and intelligent response parsing. Implemented automatic model recommendations based on system RAM.
Created the comprehensive 6-theme system with CSS variables, smooth transitions, and theme persistence. Implemented dynamic theme switching with real-time UI updates.
Built the personality-driven AI response engine with theme synchronization and context-aware interactions. Each personality has unique traits and emoji preferences.
Designed the event-driven background notification system with smart timing (30min, 5min reminders) and cross-platform OS integration using Electron's system tray.
Built the core task scheduling algorithm with priority queuing, deadline tracking, recurring task support, and automatic failure detection for overdue tasks.
Set up Electron Builder configuration for Windows, macOS, and Linux distributions. Implemented auto-updating capabilities and portable executable generation.
# Clone the repository
git clone https://github.com/Yxiang-828/Wingman.git
cd Wingman
# Install dependencies
npm install
pip install -r requirements.txt
# Start Ollama service
ollama serve
# Run in development mode
npm run dev:electron
# One-command complete build (Windows)
.\complete-build.bat
# Manual build steps
npm run build
npm run dist
npm run dev:electron # Starts Vite dev server + Electron + FastAPI backend
npm run dev
- Frontend only development with Vite HMRnpm run dev:electron
- Full stack development (Frontend + Backend + Electron)npm run build
- Production build for all platformsnpm run package
- Package for current platform onlynpm run dist
- Build distributables for all platformsnpm run lint
- Run ESLint for code quality checks# Windows (PowerShell)
winget install --id Ollama.Ollama
# macOS
brew install ollama
# Linux
curl https://ollama.ai/install.sh | sh
# Check available models
ollama list
# Download model manually
ollama run "deepseek-r1:7b"
# Remove corrupted model
ollama rm "model-name"
# Then restart Wingman
If port 8080 is busy, Wingman will automatically find an available port. You can also manually set the port in the configuration file.
# Clear node modules and reinstall
rm -rf node_modules package-lock.json
npm install
# Clear Python cache
pip cache purge
pip install -r requirements.txt --force-reinstall
Evaluator: Aakash S/O Rengarajan Ramaswamy (NUS Orbital Tutor)
Our Wingman project successfully passed the final evaluation with all 8 core features accepted. The tutor praised the implementation quality, user experience, and technical execution across the entire application:
π Final Result: 8/8 Features Accepted - Project Evaluation Successful