kevin
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.
index.ts
https://kibet--6b300a543fa711f0832276b3cceeab13.web.val.run
A real-time voting application with public chat functionality for election discussions.
- Voting System: Cast votes for different candidates/options
- Public Chat Room: Real-time discussion about elections
- Vote Results: Live vote tallies and percentages
- User Authentication: Simple username-based system
- Responsive Design: Works on desktop and mobile
βββ backend/
β βββ database/
β β βββ migrations.ts # Database schema setup
β β βββ queries.ts # Database query functions
β βββ routes/
β β βββ votes.ts # Voting API endpoints
β β βββ chat.ts # Chat API endpoints
β βββ index.ts # Main Hono server
βββ frontend/
β βββ components/
β β βββ App.tsx # Main application component
β β βββ VotingPanel.tsx # Voting interface
β β βββ ChatRoom.tsx # Chat interface
β βββ index.html # Main HTML template
β βββ index.tsx # Frontend entry point
βββ shared/
βββ types.ts # Shared TypeScript types
- Backend: Hono (TypeScript API framework)
- Frontend: React with TypeScript
- Database: SQLite
- Styling: TailwindCSS
- Real-time: Server-Sent Events (SSE)
GET /
- Serve the main applicationGET /api/votes
- Get current vote resultsPOST /api/votes
- Cast a voteGET /api/chat/messages
- Get chat messagesPOST /api/chat/messages
- Send a chat messageGET /api/chat/stream
- SSE stream for real-time chat updates
- Enter your username to join
- Cast your vote for your preferred candidate
- Participate in the public chat discussion
- View live vote results and chat updates