Skip to content

A5hG0/Project-DL-Leader-Board

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 TAB Deep Learning Leaderboard

A full-stack web platform for tracking Deep Learning case study completions, rankings, and progress β€” built for the TAB community.

MIT License React TypeScript Express MongoDB Vite


TAB Deep Learning Banner


πŸ“– Table of Contents


🌌 Overview

TAB Deep Learning is a community platform designed to help learners track their journey through structured Deep Learning content. Members can:

  • Work through curated case studies spanning Python basics to advanced deep learning
  • View a live leaderboard powered by Google Sheets to track points, streaks, and completion rates
  • Submit their solutions via a Google Form to earn points and badges

The UI is styled with a dark galaxy/nebula aesthetic β€” think purple starfields and glowing neon cards.


✨ Features

Feature Description
πŸ“š Case Studies Accordion-style lesson browser organized by category (Python Basics β†’ Deep Learning)
πŸ† Live Leaderboard Real-time rankings fetched from Google Sheets via Apps Script
πŸ“„ Rich Content Viewer Supports text, list, code, and composite section types per case
πŸš€ Solution Submission One-click redirect to Google Form for submitting completed case studies
πŸŒ™ Galaxy UI Animated starfield background, glassmorphism cards, and neon purple gradients
πŸ”— Discord Integration Navbar link to the community Discord server

πŸ›  Tech Stack

Frontend (/client)

  • React 19 + TypeScript β€” component framework
  • Vite 7 β€” dev server & bundler
  • React Router DOM v7 β€” client-side routing
  • Axios β€” HTTP client
  • React Icons β€” icon library
  • React Markdown β€” markdown rendering support

Backend (/server)

  • Node.js + Express 5 β€” REST API server
  • TypeScript β€” type-safe server code
  • Mongoose 9 + MongoDB β€” database ODM
  • CORS β€” cross-origin request handling
  • dotenv β€” environment configuration
  • ts-node-dev β€” hot-reloading dev server

External Services

  • Google Apps Script β€” leaderboard data pipeline (Sheets β†’ JSON API)
  • Vercel β€” frontend hosting
  • MongoDB Atlas β€” cloud database

πŸ“ Project Structure

Project-DL-Leader-Board/
β”œβ”€β”€ client/                     # React + Vite frontend
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”‚   └── axios.ts        # Axios instance with base URL
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   └── Navbar.tsx      # Sticky nav with Discord link
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”‚   β”œβ”€β”€ Home.tsx        # Hero + case study grid
β”‚   β”‚   β”‚   β”œβ”€β”€ CaseStudies.tsx # Accordion category browser
β”‚   β”‚   β”‚   β”œβ”€β”€ CaseStudyDetails.tsx # Dynamic section renderer
β”‚   β”‚   β”‚   └── Leaderboard.tsx # Live rankings table
β”‚   β”‚   β”œβ”€β”€ styles/             # Per-page CSS modules
β”‚   β”‚   β”œβ”€β”€ types/
β”‚   β”‚   β”‚   └── CaseStudy.ts    # Shared TypeScript types
β”‚   β”‚   └── App.tsx             # Router setup
β”‚   β”œβ”€β”€ vercel.json             # SPA rewrite rules
β”‚   └── vite.config.ts
β”‚
└── server/                     # Express + MongoDB backend
    └── src/
        β”œβ”€β”€ config/
        β”‚   └── db.ts           # Mongoose connection
        β”œβ”€β”€ controllers/
        β”‚   β”œβ”€β”€ caseController.ts
        β”‚   └── userController.ts
        β”œβ”€β”€ models/
        β”‚   β”œβ”€β”€ casestudy.ts    # Flexible section schema (Mixed content)
        β”‚   └── User.ts
        β”œβ”€β”€ routes/
        β”‚   β”œβ”€β”€ caseRoutes.ts
        β”‚   └── userRoutes.ts
        └── server.ts           # Entry point

πŸš€ Getting Started

Prerequisites

  • Node.js >= 20.19.0
  • npm or yarn
  • A MongoDB connection string (local or Atlas)

Installation

  1. Clone the repository

    git clone https://github.com/A5hG0/Project-DL-Leader-Board.git
    cd Project-DL-Leader-Board
  2. Install client dependencies

    cd client
    npm install
  3. Install server dependencies

    cd ../server
    npm install

Environment Variables

Server β€” create server/.env:

MONGO_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/<dbname>
PORT=5000

Client β€” create client/.env.local:

VITE_API_BASE_URL=http://localhost:5000/

For production, set VITE_API_BASE_URL to your deployed server URL.

Running Locally

Start the backend (from /server):

npm run dev
# Server running on http://localhost:5000

Start the frontend (from /client):

npm run dev
# App running on http://localhost:5173

πŸ“‘ API Reference

Base URL: http://localhost:5000

Method Endpoint Description
GET /cases Fetch all case studies
GET /cases/:id Fetch a single case study by ID
GET /users/leaderboard Fetch users sorted by score

Case Study Object

{
  "_id": "...",
  "title": "Introduction to NumPy",
  "subtitle": "Working with arrays and matrices",
  "category": "Data Handling",
  "sections": [
    {
      "type": "text",
      "heading": "What is NumPy?",
      "content": "NumPy is a library for numerical computing..."
    },
    {
      "type": "code",
      "heading": "Example",
      "content": "import numpy as np\narr = np.array([1, 2, 3])",
      "language": "python"
    }
  ]
}

Supported section types: text Β· list Β· code Β· composite


☁️ Deployment

Frontend (Vercel)

The client/vercel.json includes a catch-all rewrite for SPA routing:

{ "rewrites": [{ "source": "/(.*)", "destination": "/" }] }

Set the environment variable VITE_API_BASE_URL in your Vercel project settings to point to your production API.

Backend

Deploy to any Node.js-compatible host (Railway, Render, Fly.io, etc.). Make sure to set MONGO_URI and PORT in the platform's environment config.

The server's CORS config already includes https://deep-learning-tab.vercel.app β€” update this to match your deployed frontend URL if needed.


🀝 Contributing

Contributions are welcome! Here's how to get involved:

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

Want to submit a case study solution instead? Use the πŸš€ Submit Case Study form.


πŸ’¬ Community

Join the TAB Discord to discuss case studies, ask questions, and connect with other learners:

Discord


πŸ“„ License

This project is licensed under the MIT License β€” see the LICENSE file for details.


Built with πŸ’œ for the TAB Deep Learning community

About

A full-stack web platform for tracking Deep Learning case study completions, rankings, and progress within the TAB community. Features a modern galaxy-themed UI with animated starfields, and glassmorphism cards. Learners can browse curated case studies from Python basics to deep learning, submit solutions via Google Sheets

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors