Skip to content

hussaino03/QuestLog

Folders and files

NameName
Last commit message
Last commit date
Dec 21, 2024
Dec 23, 2024
Feb 23, 2025
Jan 1, 2025
Jan 3, 2025
Dec 9, 2024
Dec 9, 2024
Jan 3, 2025
Dec 23, 2024
Dec 23, 2024
Jan 1, 2025
Apr 12, 2022
Mar 15, 2025
Jan 1, 2025
Jan 1, 2025
Jan 3, 2025
Jan 3, 2025

Repository files navigation

QuestLog

Current Authorized Users Total User XP Vercel Deploy

QuestLog is an AI-powered productivity platform that turns task/project management into a rewarding progression system. Through XP points, achievement tracking, and smart insights, it creates an engaging framework that helps users maximize their daily productivity while making personal growth measurable and motivating!

✨ Key Features

πŸ€– AI-Powered Productivity

  • Personalized task insights and recommendations
  • Analyzes task completion patterns, task completion rates, recent accomplishments, XP progression, and performance trends

πŸ‘₯ Collaborative Projects

  • Real-time project sharing and collaboration
  • Invite system via shareable codes
  • Synchronized progress across team members
  • Team activity tracking
  • Project-specific collaboration settings

πŸ“ˆ Progress System

  • Experience points (XP) and leveling
  • Achievement badges
  • Streak system
  • Control tasks/projects via different XP settings

πŸ“Š Productivity Analytics

  • Analytics dashboard
  • Performance metrics and trends
  • XP growth tracking
  • Custom date range insights

πŸ“ Task/Project Management

  • Cloud synchronization
  • Project or Task creation
  • List/Calendar views
  • Label organization

πŸ† Social Features

  • Public leaderboard

βš™οΈ Integrations

Tasks will be imported with default XP settings

  • Todoist
  • TickTick

πŸ”’ Security

  • Authentication:

    • Secure sign-in via Google OAuth 2.0
    • Session-based authentication with Passport.js
    • Secure cookie management with express-session
  • Data Protection:

    • MongoDB session store
    • Resource ownership verification
    • Password-less authentication flow
  • Network Security:

    • Express.js security middleware
    • Production-grade CORS policy
    • Rate limiting protection

πŸ› οΈ Technical Overview

Built with:

πŸ—οΈ Architecture

Loading
graph TB
    %% External Services Layer
    subgraph External["External Services"]
        OAuth[OAuth Providers]
        AppIntegrations[App Integrations]
    end

    %% Frontend Layer
    subgraph Frontend["Frontend (React)"]
        direction TB
        App[App.js]
        Auth[Authentication]
        ModalManager[Task/Project Management]
        GameSystem[Game Systems]
    end

    %% Backend Layer
    subgraph Backend["Backend (Express.js)"]
        direction TB
        Server[Server.js]
        AuthService[Auth Service]
        ItemService[Task/Project Service]
        GameService[Game Service]
        IntegrationService[Integration Service]
        Passport[Passport.js]
        Session[Session Management]
    end

    %% Database Layer
    subgraph Database["Database Layer"]
        direction TB
        MongoDB[(MongoDB)]
        SessionStore[(Session Store)]
    end

    %% Core Connections
    Frontend --> Backend
    Backend --> External
    Backend --> Database

    %% Detailed Connections
    Auth --> AuthService
    ModalManager --> ItemService
    ModalManager --> IntegrationService
    GameSystem --> GameService
    AuthService --> OAuth
    IntegrationService --> AppIntegrations
    Session --> SessionStore
    
    %% Frontend Flow
    App --> Auth & ModalManager & GameSystem
    
    %% Backend Flow
    Server --> AuthService & ItemService & GameService & IntegrationService & Session
    AuthService --> Passport

classDef frontend fill:#42b883,stroke:#333,stroke-width:2px
classDef backend fill:#68a063,stroke:#333,stroke-width:2px
classDef external fill:#f5a623,stroke:#333,stroke-width:2px
classDef database fill:#4479a1,stroke:#333,stroke-width:2px

πŸš€ Quick Start

Prerequisites

  • Node.js (v14.0.0 or later)
  • Docker and Docker Compose
  • Google OAuth credentials from Google Cloud Console

Installation

  1. Clone the repository:

    git clone https://github.com/hussaino03/QuestLog.git
    cd QuestLog
  2. Set up environment:

    # Copy the example environment file
    cp example.env .env.test
    
    # Only required changes:
    # - GOOGLE_CLIENT_ID=your_client_id_from_google_cloud_console
    # - GOOGLE_CLIENT_SECRET=your_client_secret_from_google_cloud_console
    # - REACT_APP_GOOGLE_CLIENT_ID=same_as_GOOGLE_CLIENT_ID
  3. Start with Docker:

    docker-compose --env-file .env.test up --build
  4. Access the application:

The example.env includes working test values for all other configurations. You only need to provide Google OAuth credentials to get started.

πŸ”§ API Endpoints

  • POST /api/users: Create or retrieve a user
  • GET /api/users/:id: Get user data
  • PUT /api/users/:id: Update user data (XP, level, tasks/projects completed)
  • GET /api/leaderboard: Retrieve leaderboard data
  • POST /api/auth/google: Handle Google OAuth authentication
  • GET /api/auth/<integrations> : integrations OAuth import
  • POST /api/projects/:id/share: Generate project share code
  • POST /api/projects/:id/join: Join project via share code
  • GET /api/projects/:id/collaborators: Get project collaborators
  • DELETE /api/projects/:id/collaborators/:userId: Remove collaborator

πŸ’Ύ Data Persistence

  • All data synced with MongoDB
  • Available across devices
  • Progress tracked on the leaderboard

πŸ’³ Support

If you find QuestLog helpful and would like to support its development:

PayPal

🀝 Contributing

Please refer to CONTRIBUTING.md for contribution guidelines.

πŸ“ License

This project is open source and available under the MIT License.

About

Turning productivity into progress & achievements

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages