Silroad
An event organizer platform that helps organizations create, manage, and promote events while connecting people through shared experiences.
Features
- Event Management: Create and manage events with RSVP functionality
- Organization System: Organizations can host multiple events and manage members
- User Authentication: Secure registration and login system with session management
- Event Discovery: Explore events happening in your area
- Member Management: Handle organization memberships and event organizers
- RSVP System: Attendee management with capacity limits and RSVP deadlines
Tech Stack
- Frontend: SvelteKit 2 with Skeleton UI + Tailwind CSS
- Backend: Cloudflare Workers for serverless hosting
- Database: Cloudflare D1 (SQLite) with Drizzle ORM + Cloudflare KV
Database Schema
The platform includes the following main entities:
- Users: User accounts with authentication
- Organizations: Event hosting organizations
- Events: Event details, dates, and capacity management
- Attendees: RSVP tracking
- Sessions: User session management
Getting Started
Prerequisites
- Node.js 23+
- pnpm 10+
- Cloudflare account for deployment
Installation
- Clone the repository
- Install dependencies:
pnpm install
- Set up your Cloudflare D1 database and KV namespace
- Update
wrangler.jsonc
with your database and KV IDs
Development
Start the development server:
pnpm dev
The app will be available at http://localhost:5173
Database Management
Generate database migrations:
pnpm db:generate
Apply migrations:
pnpm db:migrate
Open Drizzle Studio for database management:
pnpm db:studio
Building and Deployment
Build for production:
pnpm build
Deploy to Cloudflare:
pnpm deploy
Testing
Run unit tests:
pnpm test:unit
Run end-to-end tests:
pnpm test:e2e
Run all tests:
pnpm test
Project Structure
src/
├── lib/
│ ├── db/ # Database schema and connection
│ ├── repos/ # Data access layer
│ └── utils/ # Utility functions
├── routes/
│ ├── auth/ # Authentication pages
│ ├── explore/ # Event discovery
│ ├── settings/ # User/org settings
│ └── api/ # API endpoints
└── app.html # Main HTML template
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
License
This project is licensed under MTI License
.