• Townie
    AI
  • Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
reubenoguta_Valtown

reubenoguta_Valtown

Reuben

Public
Like
Reuben
Home
Code
4
backend
3
frontend
3
shared
1
README.md
Branches
1
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
Code
/
Search
README.md

Learning Management System (LMS) with Online Exams

A comprehensive Learning Management System featuring course management, online examinations, and automated grading capabilities.

Features

Core LMS Features

  • User Management: Student and instructor registration/authentication
  • Course Management: Create, edit, and manage courses
  • Content Delivery: Upload and organize course materials
  • Progress Tracking: Monitor student progress through courses

Online Exam System

  • Exam Creation: Multiple question types (multiple choice, true/false, short answer)
  • Auto-Grading: Automatic scoring for objective questions
  • Time Management: Configurable exam duration and deadlines
  • Anti-Cheating: Basic measures like time limits and question randomization
  • Results & Analytics: Detailed performance reports

Question Types Supported

  • Multiple Choice (auto-graded)
  • True/False (auto-graded)
  • Short Answer (manual grading required)
  • Essay Questions (manual grading required)

Project Structure

β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ database/
β”‚   β”‚   β”œβ”€β”€ migrations.ts    # Database schema setup
β”‚   β”‚   └── queries.ts       # Database query functions
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ auth.ts         # Authentication endpoints
β”‚   β”‚   β”œβ”€β”€ courses.ts      # Course management
β”‚   β”‚   β”œβ”€β”€ exams.ts        # Exam management
β”‚   β”‚   β”œβ”€β”€ submissions.ts  # Exam submissions
β”‚   β”‚   └── static.ts       # Static file serving
β”‚   └── index.ts            # Main API server
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ App.tsx         # Main application
β”‚   β”‚   β”œβ”€β”€ Dashboard.tsx   # User dashboard
β”‚   β”‚   β”œβ”€β”€ CourseList.tsx  # Course listing
β”‚   β”‚   β”œβ”€β”€ ExamTaker.tsx   # Exam interface
β”‚   β”‚   └── GradeBook.tsx   # Grades and results
β”‚   β”œβ”€β”€ index.html          # Main HTML template
β”‚   β”œβ”€β”€ index.tsx           # Frontend entry point
β”‚   └── style.css           # Styling
└── shared/
    └── types.ts            # Shared TypeScript types

Getting Started

  1. The system will automatically set up the database on first run
  2. Register as an instructor to create courses and exams
  3. Students can register and enroll in available courses
  4. Take exams and view results in real-time

Technology Stack

  • Backend: Hono.js API framework
  • Database: SQLite with automatic migrations
  • Frontend: React with TypeScript
  • Styling: TailwindCSS
  • Authentication: Session-based auth with secure cookies

API Endpoints

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • POST /api/auth/logout - User logout
  • GET /api/auth/me - Get current user

Courses

  • GET /api/courses - List all courses
  • POST /api/courses - Create new course (instructors only)
  • GET /api/courses/:id - Get course details
  • POST /api/courses/:id/enroll - Enroll in course

Exams

  • GET /api/courses/:id/exams - List course exams
  • POST /api/courses/:id/exams - Create new exam
  • GET /api/exams/:id - Get exam details
  • POST /api/exams/:id/submit - Submit exam answers

Submissions

  • GET /api/exams/:id/submissions - Get exam submissions (instructors)
  • GET /api/submissions/:id - Get specific submission details
Code
backendfrontendsharedREADME.md
FeaturesVersion controlCode intelligenceCLI
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Terms of usePrivacy policyAbuse contact
Β© 2025 Val Town, Inc.