Skip to content

Repository files navigation

QuestLine

QuestLine

A Persian-first operating system for modern sports coaching.
QuestLine brings coaches, athletes, programs, sessions, attendance, and simple payments into one focused mobile-first workspace.

Status: Active MVP Next.js 15 NestJS PostgreSQL and Prisma


Why QuestLine

Sports coaching often runs on disconnected chats, spreadsheets, and informal payment tracking. QuestLine is being built to give coaches and athletes a single, trustworthy place to run the relationship: from onboarding and verification to programs, sessions, attendance, and payment-aware access.

It is intentionally designed as a premium, Persian-first, RTL-ready, mobile-first web product—operational rather than gimmicky, with clear workflows and role-aware access.

The product at a glance

flowchart LR
  A["Athlete"] -->|"joins & follows progress"| Q["QuestLine"]
  C["Coach"] -->|"creates programs & sessions"| Q
  M["Admin"] -->|"reviews verification"| Q
  Q --> P["Programs / Quests"]
  Q --> S["Calendar & Sessions"]
  Q --> T["Attendance & Access"]
  Q --> Y["Simple Payments"]
Loading

Core capabilities

Area What it enables
Authentication & roles Registration, login, refresh/logout, and coach/athlete role selection.
Coach verification Coaches submit verification details; admins review and approve them with audit-aware workflows.
Coach–athlete relationships Invitations, athlete responses, relationship setup, athlete management, and renewal alerts.
Quests Coaches create draft or public/private training programs, manage participants, publish with guardrails, and plan quest sessions.
Sessions & calendar Coach and athlete calendar views, session detail flows, attendance, and visibility rules.
Payments A simple, development-stage athlete checkout loop, payment status handling, and participant activation alignment.
Profiles & trust Role-specific profiles, visibility controls, follow requests, and sport-discipline support.
Admin operations Coach-verification review and an admin settings foundation.

Current status

Active MVP — core product flows are implemented; production hardening and several product surfaces remain.

QuestLine is a working full-stack MVP, not a public production service. The main application includes the foundations needed to demonstrate the coach–athlete operating model and has a deliberately disciplined scope.

Implemented foundation

  • Turborepo monorepo with shared packages and configuration
  • Next.js App Router frontend with Tailwind CSS and Persian/RTL localization foundations
  • NestJS API with Prisma and PostgreSQL
  • Authentication, role selection, route guards, and role-specific shells
  • Coach verification and admin review workflow
  • Coach–athlete invitations, relationships, profiles, and athlete management
  • Quest lifecycle, participant management, sessions, calendars, and attendance
  • Athlete-side simple payment/checkout flow using a placeholder payment result for MVP development

In progress / next

  • Coach-side subscription/payment purchase and payment-status UI
  • Messaging data model, permissions, and coach/athlete interfaces
  • Broader admin user management, reports, audit-log browsing, and moderation controls
  • Final access-control, privacy, locked-state, RTL, and mobile UX reviews
  • Automated regression coverage, release checks, deployment plan, and pilot setup

Deliberately out of MVP scope

Wallets, cash-out, marketplace, public social feeds, group/guild features, wearables, machine learning, and native mobile apps are intentionally deferred. This keeps the MVP centered on high-value coaching operations instead of expanding into a general social or fintech product.

Architecture

questline-product/
├── apps/
│   ├── web/          Next.js 15, React 19, Tailwind CSS
│   └── api/          NestJS, Prisma
├── packages/
│   ├── config/       Shared configuration
│   └── shared/       Shared types and utilities
└── Questline_information/  Product, UX, and implementation references
Layer Stack
Web Next.js App Router, React, TypeScript, Tailwind CSS
API NestJS, TypeScript, class-validator
Data PostgreSQL, Prisma ORM
Tooling pnpm workspaces, Turborepo, ESLint

Run it locally

Prerequisites

  • Node.js 20+
  • pnpm 9+
  • PostgreSQL 15+

Setup

git clone https://github.com/MrAshki/Questline_Product.git
cd Questline_Product
pnpm install

Create a local environment file for the API using the supplied template:

cp .env.example apps/api/.env

Update apps/api/.env with your local PostgreSQL connection and application secrets, then prepare the database and start the workspace:

pnpm --filter @questline/api prisma:generate
pnpm --filter @questline/api prisma:db-push
pnpm dev

The web app is configured to call the API at http://localhost:4000/api. The frontend runs through Next.js (normally http://localhost:3000) and the API through NestJS (normally port 4000).

Useful commands

pnpm lint
pnpm typecheck
pnpm build

The payment checkout is an MVP placeholder flow, not a live payment gateway. Do not use real payment data in local development.

How to explore the MVP

  1. Register an account and sign in.
  2. Select Coach or Athlete as your role.
  3. As a coach, complete the verification flow, create a quest, add sessions, and manage athletes.
  4. As an athlete, accept an invitation, review available quests, visit the calendar, and complete the placeholder checkout path where applicable.
  5. Use the admin area to review coach-verification requests.

Product principles

  • Trust before growth: verification, role-aware access, and privacy are first-class concerns.
  • Operations over noise: workflows should remove coordination overhead, not create another social feed.
  • Scope discipline: the MVP focuses on the smallest complete coach–athlete operating loop.
  • Local relevance: Persian language support, RTL presentation, and mobile-first interaction guide the interface.

Repository notes

This repository is presented as a portfolio case study and an active MVP codebase. Product documentation and UI references live in Questline_information/, while the application code lives in apps/web and apps/api.

No license is currently specified. Please contact the repository owner before reusing the code or product assets.


Built by @MrAshki · Questions or collaboration ideas are welcome through GitHub.

About

Persian-first, mobile-first coaching operations platform built with Next.js, NestJS, Prisma, and PostgreSQL.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages