f625902bb6e969d3bf2c6225546a87e82db777a5
RSVP Manager
A modern event RSVP management system with customizable backgrounds and item coordination.
Features
- User-friendly RSVP interface
- Comprehensive event management
- Create and manage events
- Track RSVPs and guest counts
- Set RSVP cut-off dates to automatically close registrations
- Coordinate needed items and track who's bringing what
- Customizable event backgrounds/wallpapers
- Real-time item status tracking
- See what items are still needed
- Track claimed items
- Prevent duplicate item claims
- Guest management
- Track guest attendance
- Support for bringing additional guests
- Guest names tracking
- Modern, responsive UI
- Containerized deployment
Tech Stack
- Frontend: React with TypeScript and Material-UI
- Backend: Node.js/Express with TypeScript
- Database: SQLite
- Containerization: Docker
Getting Started
Prerequisites
- Docker
- Docker Compose
- Node.js (for local development)
Installation
- Clone the repository
- Run
docker-compose upto start the application - Access the application at
http://localhost:3000
Development
Local Development Setup
-
Install dependencies:
# Install backend dependencies cd backend npm install # Install frontend dependencies cd ../frontend npm install -
Start the development servers:
# Start backend server cd backend npm run dev # Start frontend server cd ../frontend npm start
Key Features Explained
Event Creation and Management
- Create events with title, description, date, time, and location
- Set optional RSVP cut-off dates to automatically close registrations
- Upload custom wallpapers to personalize event pages
- Manage RSVPs and track attendance
Item Coordination
- Create a list of needed items for the event
- Attendees can claim items they'll bring
- Real-time tracking of claimed vs needed items
- Prevent duplicate item claims
- Remove items that are no longer needed
RSVP Management
- Track who's attending
- Support for bringing additional guests
- Keep track of guest names
- Manage what items each person is bringing
Authentication with Authentik
This application is compatible with Authentik using a proxy provider (single application). To protect the admin routes, add the following configuration to your nginx config:
location ~ (/create|/admin) {
proxy_pass $forward_scheme://$server:$port;
auth_request /outpost.goauthentik.io/auth/nginx;
error_page 401 = @goauthentik_proxy_signin;
auth_request_set $auth_cookie $upstream_http_set_cookie;
add_header Set-Cookie $auth_cookie;
auth_request_set $authentik_username $upstream_http_x_authentik_username;
auth_request_set $authentik_groups $upstream_http_x_authentik_groups;
auth_request_set $authentik_email $upstream_http_x_authentik_email;
auth_request_set $authentik_name $upstream_http_x_authentik_name;
auth_request_set $authentik_uid $upstream_http_x_authentik_uid;
auth_request_set $authentik_authorization $upstream_http_authorization;
proxy_set_header X-authentik-username $authentik_username;
proxy_set_header X-authentik-groups $authentik_groups;
proxy_set_header X-authentik-email $authentik_email;
proxy_set_header X-authentik-name $authentik_name;
proxy_set_header X-authentik-uid $authentik_uid;
proxy_set_header Authorization $authentik_authorization;
}
This configuration will:
- Protect the
/createand/adminroutes with Authentik authentication - Redirect unauthenticated users to the Authentik login page
- Pass through Authentik user information in headers after successful authentication
License
MIT
Description
Languages
TypeScript
98.7%
Dockerfile
0.7%
HTML
0.3%
CSS
0.3%