• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
colel

colel

rust-nyc-event-signin

Public
Like
rust-nyc-event-signin
Home
Code
9
backend
1
frontend
3
shared
1
.vtignore
AGENT.md
BRAND_STYLE_GUIDE.md
README.md
deno.json
main.tsx
Branches
1
Pull requests
Remixes
History
Environment variables
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.
Sign up now
Code
/
README.md
Code
/
README.md
Search
7/10/2025
Viewing readonly version of main branch: v4
View latest version
README.md

Event Check-in System

A complete event check-in system for managing attendee sign-ins with secure name verification.

Features

  • Event Management: Create events with attendee lists and password protection
  • Secure Check-in: Fuzzy search-based sign-in with name verification
  • Analytics Dashboard: Track check-ins with date-based analytics
  • CSV Import/Export: Import attendee lists and export check-in data
  • Responsive UI: Clean, modern interface built with React and TailwindCSS

How It Works

  1. Event Creation: Organizers create events with attendee lists via CSV upload
  2. Attendee Sign-in: Attendees use fuzzy search to find and check in with their names
  3. Data Tracking: System tracks all check-ins with timestamps
  4. Analytics: Organizers can view check-in analytics and export data
  5. Security: No sensitive information exposed, password-protected management

Project Structure

β”œβ”€β”€ backend/
β”‚   └── index.ts              # Main API server with Hono
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ index.html           # Main HTML template
β”‚   β”œβ”€β”€ index.tsx            # React app entry point
β”‚   └── components/
β”‚       β”œβ”€β”€ App.tsx          # Main app component
β”‚       β”œβ”€β”€ EventSignIn.tsx  # Sign-in component with fuzzy search
β”‚       β”œβ”€β”€ EventManagement.tsx  # Management dashboard
β”‚       └── EventCreation.tsx    # Event creation form
β”œβ”€β”€ shared/
β”‚   └── types.ts             # Shared TypeScript types
└── README.md

Setup

Environment Variables

No external API keys required for basic functionality. Optional Discord integration available for future features.

Database

The system uses SQLite with the following schema:

-- Events table CREATE TABLE events_1 ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, password_hash TEXT NOT NULL, location TEXT, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); -- Attendees table CREATE TABLE attendees_1 ( id INTEGER PRIMARY KEY AUTOINCREMENT, event_id INTEGER NOT NULL, name TEXT NOT NULL, external_id TEXT, FOREIGN KEY (event_id) REFERENCES events_1(id) ); -- Check-ins table CREATE TABLE checkins_1 ( id INTEGER PRIMARY KEY AUTOINCREMENT, event_id INTEGER NOT NULL, attendee_id INTEGER NOT NULL, checked_in_at DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (event_id) REFERENCES events_1(id), FOREIGN KEY (attendee_id) REFERENCES attendees_1(id) );

API Endpoints

  • POST /api/submissions - Submit a new talk proposal
  • GET /api/submissions - Get all submissions (admin)
  • POST /api/discord/test - Test Discord integration (creates test channel and sends message)

Discord Integration Status

βœ… Discord integration is fully implemented with comprehensive logging

The system will automatically:

  • Create Discord channels for each talk submission
  • Generate invite links for the channels
  • Post notifications to the organizers channel

Comprehensive Logging: The system includes detailed logging throughout the Discord integration process:

  • πŸ” Environment variable checks on startup
  • 🎯 API request tracking with submission details
  • πŸ”§ Discord channel creation with API responses
  • πŸ”— Invite link generation with full details
  • πŸ“’ Organizer notifications with message content
  • πŸ’₯ Detailed error logging with stack traces and specific Discord error codes
  • πŸ“Š Final result summaries

Fallback behavior: If Discord credentials are not provided, the system will use placeholder values and log what would have been done, allowing the form to still function for testing.

Debugging: Use the requests tool to view detailed logs of each submission, including all Discord API interactions and any errors that occur.

Usage

  1. Fill out the talk submission form
  2. Submit the form
  3. Receive a Discord invite link
  4. Join the Discord channel to discuss your talk with organizers

Tech Stack

  • Backend: Hono (API framework)
  • Frontend: React 18.2.0 with TypeScript
  • Database: SQLite
  • Styling: TailwindCSS
  • Platform: Val Town (Deno runtime)
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
Β© 2026 Val Town, Inc.