The HQ Project is a desktop application designed to help students and professionals track their study sessions effectively. Built with a modern tech stack combining C++ for the backend and React for the frontend, it provides a seamless and performant user experience.
- โฑ๏ธ Session Tracking: Start, stop, and manage your study sessions with ease
- ๐ Statistics & Analytics: Visualize your study patterns with interactive charts
- ๐พ Local Data Storage: All data is stored locally using SQLite for privacy and reliability
- ๐จ Modern UI: Beautiful, responsive interface built with React and TailwindCSS
- ๐ฅ๏ธ Cross-Platform: Works on Windows, macOS, and Linux
- ๐ Progress Monitoring: Track your study habits over time with detailed statistics
- C++23: Modern C++ for high-performance backend
- Saucer: WebView integration for native desktop applications
- SQLite3: Lightweight, embedded database for local data storage
- CMake: Build system configuration
- React 19: Latest React for building interactive UI
- TypeScript: Type-safe JavaScript development
- Vite: Lightning-fast build tool and dev server
- TailwindCSS: Utility-first CSS framework
- Hero UI: Modern React component library
- Recharts: Composable charting library for data visualization
- Framer Motion: Animation library for smooth UI transitions
- CMake 4.0 or higher
- C++23 compatible compiler (GCC 13+, Clang 16+, or MSVC 2022+)
- Git
- Node.js 18+ or higher
- pnpm (recommended) or npm
- Microsoft Edge WebView2 Runtime (Download)
- WebKitGTK or Qt WebEngine (depending on Saucer configuration)
git clone https://github.com/NaviTheCoderboi/hq.git
cd hq-testpnpm install
# or
npm installpnpm build
# or
npm run buildmkdir build
cd build
cmake ..
cmake --build ../build/TheHQProject.\build\TheHQProject.exeStart the development server with hot reload:
pnpm dev
# or
npm run devRun linting:
pnpm lint
# or
npm run lintType checking:
pnpm typecheck
# or
npm run typecheckFormat code:
pnpm format
# or
npm run formatThe backend uses CMake for building. After making changes to C++ code:
cd build
cmake --build .cd build
cpack -G NSIScd build
cpack -G DragNDropcd build
cpack -G TGZhq/
โโโ assets/ # Application assets (icons, images)
โโโ backend/ # C++ backend source files
โ โโโ main.cpp # Application entry point
โ โโโ bridge.cpp # Bridge between frontend and backend
โ โโโ db.cpp # Database operations
โ โโโ fs.cpp # File system utilities
โ โโโ ...
โโโ include/ # C++ header files
โโโ src/ # React frontend source
โ โโโ components/ # React components
โ โโโ utils/ # Utility functions and stores
โ โโโ App.tsx # Main application component
โโโ external/ # External dependencies (SQLite)
โโโ cmake/ # CMake modules
โโโ CMakeLists.txt # CMake configuration
โโโ package.json # Node.js dependencies
โโโ vite.config.ts # Vite configuration
The application uses SQLite for local data storage with the following main entities:
- Sessions: Study session records with timestamps, duration, and metadata
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the terms specified in the LICENSE file.
NaviTheCoderboi
- GitHub: @NaviTheCoderboi
- Saucer - For the excellent webview integration
- Hero UI - For the beautiful React components
- All the amazing open-source libraries that made this project possible
If you encounter any issues or have questions, please open an issue on GitHub.
