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 miliseconds.
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