Skip to content

SamXop123/TermiNest

TermiNest

Terminal-first e-learning platform for Linux, Git, and command-line mastery.

Overview

TermiNest is a modern, hacker-vibe e-learning platform designed to make you fluent on the command line. Through hands-on labs, real-world Git workflows, and guided missions, you’ll build muscle memory for Linux, Git, and terminal productivity.

Tech Stack

Frontend

  • React 19 with Vite for fast development
  • React Router for client-side routing
  • Tailwind CSS v4 for dark, terminal-inspired UI
  • Context API for authentication state
  • Axios/Fetch for API communication

Backend

  • Node.js + Express REST API
  • MongoDB Atlas with Mongoose ODM
  • JWT for stateless authentication
  • bcryptjs for password hashing
  • express-validator for input validation
  • helmet + express-rate-limit for security

Features

  • Role-based authentication (User/Admin)
  • Course catalog with category/difficulty filters
  • Enrollment & progress tracking per lesson
  • Admin panel to create/edit/delete courses
  • Secure APIs with validation, rate limiting, and JWT
  • Responsive, dark-themed UI with a hacker aesthetic
  • Real-time progress bars and lesson completion
  • Seed script for quick demo data

Quick Start

Prerequisites

  • Node.js >= 18
  • MongoDB Atlas cluster (or local MongoDB)
  • Git

1. Clone and install

git clone <repo-url>
cd TermiNest

# Frontend
npm install

# Backend
cd backend
npm install

2. Environment setup

cd backend
cp .env.example .env

Edit .env with your MongoDB Atlas URI and a strong JWT secret:

MONGODB_URI=mongodb+srv://<user>:<pass>@cluster0.xxxxx.mongodb.net/terminest
JWT_SECRET=your-super-secret-jwt-key
FRONTEND_URL=http://localhost:5173

3. Seed the database

cd backend
node src/seed.js

This creates an admin user (admin@terminest.dev / admin123) and sample courses.

4. Run the apps

# Terminal 1: backend
cd backend
npm run dev

# Terminal 2: frontend
cd ..
npm run dev

Visit http://localhost:5173.

Screenshots

1. Landing Page

Landing Page

2. Course Catalog

Course Catalog

3. Course Page

User Dashboard

4. User Dashboard

Admin Panel

Deployment

Frontend (Vercel)

npm run build
# Deploy the dist/ folder

Backend (Render)

  • Set environment variables in the provider
  • Ensure MongoDB Atlas network allows the provider’s IPs
  • Run npm start in production

API Endpoints

Auth

  • POST /api/auth/signup
  • POST /api/auth/login
  • GET /api/auth/me

Courses

  • GET /api/courses
  • GET /api/courses/:id
  • POST /api/courses (admin)
  • PUT /api/courses/:id (admin)
  • DELETE /api/courses/:id (admin)

Enrollments

  • POST /api/enroll
  • GET /api/enrollments/me
  • PUT /api/enrollments/:id/progress

Admin

  • GET /api/admin/users
  • GET /api/admin/enrollments
  • GET /api/admin/reports

Contributing

  1. Fork the repo
  2. Create a feature branch
  3. Open a PR with a clear description

License

MIT © TermiNest

Releases

No releases published

Packages

 
 
 

Contributors

Languages