Skip to content

NaviTheCoderboi/hq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1 Commit
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

The HQ Project Logo

The HQ Project

A Modern Study Time Tracker Application

License C++23 TypeScript


๐Ÿ“– About

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.

โœจ Features

  • โฑ๏ธ 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

๐Ÿ› ๏ธ Tech Stack

Backend

  • 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

Frontend

  • 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

๐Ÿ“‹ Prerequisites

Backend

  • CMake 4.0 or higher
  • C++23 compatible compiler (GCC 13+, Clang 16+, or MSVC 2022+)
  • Git

Frontend

  • Node.js 18+ or higher
  • pnpm (recommended) or npm

Platform-Specific Requirements

Windows

  • Microsoft Edge WebView2 Runtime (Download)

Linux

  • WebKitGTK or Qt WebEngine (depending on Saucer configuration)

๐Ÿš€ Getting Started

1. Clone the Repository

git clone https://github.com/NaviTheCoderboi/hq.git
cd hq-test

2. Install Frontend Dependencies

pnpm install
# or
npm install

3. Build Frontend

pnpm build
# or
npm run build

4. Build Backend

mkdir build
cd build
cmake ..
cmake --build .

5. Run the Application

On Linux/macOS:

./build/TheHQProject

On Windows:

.\build\TheHQProject.exe

๐Ÿ”ง Development

Frontend Development

Start the development server with hot reload:

pnpm dev
# or
npm run dev

Run linting:

pnpm lint
# or
npm run lint

Type checking:

pnpm typecheck
# or
npm run typecheck

Format code:

pnpm format
# or
npm run format

Backend Development

The backend uses CMake for building. After making changes to C++ code:

cd build
cmake --build .

๐Ÿ“ฆ Building for Production

Create Installer/Package

Windows (NSIS Installer):

cd build
cpack -G NSIS

macOS (DMG):

cd build
cpack -G DragNDrop

Linux (TGZ):

cd build
cpack -G TGZ

๐Ÿ“‚ Project Structure

hq/
โ”œโ”€โ”€ 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

๐Ÿ—„๏ธ Database Schema

The application uses SQLite for local data storage with the following main entities:

  • Sessions: Study session records with timestamps, duration, and metadata

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the terms specified in the LICENSE file.

๐Ÿ‘ค Author

NaviTheCoderboi

๐Ÿ™ Acknowledgments

  • Saucer - For the excellent webview integration
  • Hero UI - For the beautiful React components
  • All the amazing open-source libraries that made this project possible

๐Ÿ“ฎ Support

If you encounter any issues or have questions, please open an issue on GitHub.


Made with โค๏ธ by NaviTheCoderboi

About

A study time tracker app built using web technologies and c++

Resources

License

Stars

Watchers

Forks

Packages

No packages published