LearnEasy
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.
A comprehensive peer-to-peer tutoring platform for students to offer and request academic help.
- Skill Profiles: Students can list their subject expertise and mastery levels
- Post Feed: Request help with specific subjects (e.g., "Can someone teach me Biology?")
- Built-in Chat: Direct messaging for arranging tutoring sessions
- Location-Based Groups: Separate groups for different schools/levels
- Reputation System: Star ratings based on tutoring success and exam results
βββ backend/
β βββ database/
β β βββ migrations.ts # Database schema setup
β β βββ queries.ts # Database query functions
β βββ routes/
β β βββ auth.ts # Authentication routes
β β βββ posts.ts # Post feed management
β β βββ chat.ts # Messaging system
β β βββ users.ts # User profiles and skills
β β βββ static.ts # Static file serving
β βββ index.ts # Main API entry point
βββ frontend/
β βββ components/
β β βββ App.tsx # Main application
β β βββ PostFeed.tsx # Help request feed
β β βββ Chat.tsx # Messaging interface
β β βββ Profile.tsx # User profile management
β β βββ SkillCard.tsx # Skill display component
β βββ index.html # Main HTML template
β βββ index.tsx # Frontend entry point
β βββ style.css # Custom styles
βββ shared/
βββ types.ts # Shared TypeScript types
- The backend runs on Hono with SQLite for data storage
- Frontend uses React with TailwindCSS for styling
- Real-time features use polling for simplicity
- Authentication uses simple session-based auth
GET /
- Serve the main applicationPOST /api/auth/login
- User authenticationGET /api/posts
- Get help request postsPOST /api/posts
- Create new help requestGET /api/chat/:userId
- Get chat messagesPOST /api/chat
- Send messageGET /api/users/profile
- Get user profilePUT /api/users/skills
- Update user skills