Skip to content

Offline-first PWA for tracking personal rituals with custom metrics and visual analytics. 100% private.

License

Notifications You must be signed in to change notification settings

vincedsb1/WeTrack

Repository files navigation

WeTrack Cover

WeTrack

A privacy-focused, offline-first PWA for tracking personal and shared rituals through recurring questionnaires and visual analytics.


WeTrack Interface

✨ Core Features

  • Offline-First Architecture: Built on IndexedDB, ensuring complete functionality without an internet connection. Your data never leaves your device unless you export it.
  • Customizable Rituals: Create tailored questionnaires with specific participants, frequencies (daily, weekly, monthly), and scoring scales.
  • Visual Analytics: Analyze trends over time with 4 distinct chart modes, including per-person evolution and global averages.
  • Data Sovereignty: Full control over your data with robust JSON export and import capabilities (including intelligent merging).
  • PWA Optimized: Installable on iOS and Android with a native-like feel, touch-friendly wizard, and cached assets.

🛠️ Tech Stack


🚀 Getting Started

Follow these steps to get the project running on your local machine in minutes.

Prerequisites

1. Installation

Clone the repository and install dependencies:

git clone https://github.com/your-username/wetrack.git
cd wetrack
npm install

2. Environment Variables

This project is a client-side PWA relying on IndexedDB. It does not strictly require environment variables for local development.

However, if you plan to integrate specific features later, create a .env.local file:

touch .env.local

⚠️ Important: Never commit your .env.local file to version control.

3. Run the Development Server

Start the application in development mode:

npm run dev

Open http://localhost:3000 in your browser to start tracking your rituals.


⚙️ Architecture

This project follows a Feature-Based Architecture combined with Next.js App Router:

  • /features: Contains domain-specific logic (components, hooks) grouped by feature (e.g., rituals, charts, wizard).
  • /lib/db: A lightweight wrapper around the native IndexedDB API, serving as the single source of truth for all persistent data.
  • /store: Zustand stores that sync with IndexedDB to manage application state and UI logic.

📄 License

Distributed under the MIT License. See LICENSE for more information.

About

Offline-first PWA for tracking personal rituals with custom metrics and visual analytics. 100% private.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •