Peace
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.
index.ts
https://amarereta--dbb8139a3f8711f0bb0b76b3cceeab13.web.val.run
A comprehensive platform for sharing ideas, documents, and discussions about world peace building processes.
- Idea Sharing: Users can post their ideas and works on peace building
- Document Upload: Support for uploading documents related to peace initiatives
- Discussion Room: Real-time chat with multimedia support (text, videos, audios)
- User Registration: Required name input before participating in discussions
- WLP Membership: Invitation system for "We Love Peace" international group
├── backend/
│ ├── database/
│ │ ├── migrations.ts # Database schema setup
│ │ └── queries.ts # Database query functions
│ ├── routes/
│ │ ├── ideas.ts # Ideas and documents API
│ │ ├── chat.ts # Chat room API
│ │ └── users.ts # User management API
│ └── index.ts # Main Hono server
├── frontend/
│ ├── components/
│ │ ├── App.tsx # Main application component
│ │ ├── IdeaBoard.tsx # Ideas and documents display
│ │ ├── ChatRoom.tsx # Discussion room component
│ │ └── UserForm.tsx # User registration form
│ ├── index.html # Main HTML template
│ ├── index.tsx # Frontend entry point
│ └── style.css # Custom styles
└── shared/
└── types.ts # Shared TypeScript types
- Backend: Hono.js with TypeScript
- Frontend: React 18.2.0 with TypeScript
- Database: SQLite
- Storage: Val Town Blob storage for file uploads
- Styling: TailwindCSS
- Real-time: Polling-based chat updates
- The backend server handles API routes and serves static files
- Users must enter their name before accessing chat features
- Ideas and documents are stored with user attribution
- Chat supports text, video, and audio content
- WLP membership invitations are integrated into the platform