Skip to content

darkcom109/iGITit

Repository files navigation

iGITit

iGITit is a Git learning app built with Next.js. It combines Clerk-authenticated learning flows, a Neon Postgres database accessed through Drizzle ORM, and an in-browser Git sandbox powered by isomorphic-git.

Stack

  • Next.js 16 App Router
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • Clerk for authentication and protected routes
  • Neon Postgres with Drizzle ORM
  • shadcn/ui and Radix-based UI primitives
  • isomorphic-git with @isomorphic-git/lightning-fs for browser sandbox lessons

Features

  • Clerk sign up and sign in flows at /signup and /login
  • Protected app routes for dashboard, lessons, learning, and achievements
  • Lesson catalog with per-user progress tracking
  • Dashboard with activity and remaining-work visualizations
  • Browser-based Git sandbox for hands-on lesson execution

Project Structure

app/
  (auth)/                Clerk auth routes
  achievements/          Achievements page
  dashboard/             Dashboard UI
  engine/                Browser Git sandbox engine
  learning/              Lesson catalog
  lesson/[id]/           Individual lesson experience
components/              Shared UI and feature components
db/                      Drizzle schema and database access
drizzle/                 Generated SQL/migration artifacts

Environment

This project uses Neon Postgres and Clerk.

Configure these environment variables:

  • DATABASE_URL
  • NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL
  • NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL
  • CLERK_SECRET_KEY
  • NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY

DATABASE_URL is required by db/index.ts. Clerk is required by the app layout and route middleware in app/layout.tsx and proxy.ts.

Getting Started

  1. Install dependencies:
npm install
  1. Add your environment variables.

  2. Run the development server:

npm run dev
  1. Open http://localhost:3000.

Database

Drizzle is configured against PostgreSQL in drizzle.config.ts.

Available commands:

npm run db:generate
npm run db:migrate
npm run db:studio

Current schema lives in db/schema.ts and includes:

  • users
  • lesson_progress

Scripts

npm run dev
npm run build
npm run start
npm run lint
npm run db:generate
npm run db:migrate
npm run db:studio

Notes

  • This repo is not a default create-next-app setup anymore; the README now reflects the actual stack in use.
  • The Git practice engine lives under app/engine/sandbox-engine.ts.

About

A Practical Learning Platform For Learning GIT Through An Interactive Terminal And Real-Life Scenarios. Built Using Next.js, An Isomorphic-GIT Sandbox System, Tailwind, Neon and Clerk Authentication.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors