1a56e397351e08f789f363b891cb7863ca85af2a
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. Make sure to create a Proxy Provider for Forward auth (single application). To protect the admin & create routes, add the following configuration to your Nginx Proxy Manager config in the Advanced section. For other web server applications, see the Setup area in Authentik on the Provider page for this app and setup the routes accordingly.
# Protected routes
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;
}
# Authentik outpost configuration
location /outpost.goauthentik.io {
proxy_pass http://<YOUR_AUTHENTIK_URL>/outpost.goauthentik.io;
proxy_set_header Host $host;
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
add_header Set-Cookie $auth_cookie;
auth_request_set $auth_cookie $upstream_http_set_cookie;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
}
# Authentik signin redirect
location @goauthentik_proxy_signin {
internal;
add_header Set-Cookie $auth_cookie;
return 302 /outpost.goauthentik.io/start?rd=$request_uri;
}
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
- Handle the authentication flow through the Authentik outpost
- Properly manage cookies and headers for the authentication process
Note: Replace <YOUR_AUTHENTIK_URL> with your actual Authentik instance URL.
License
MIT
Description
Languages
TypeScript
98.7%
Dockerfile
0.7%
HTML
0.3%
CSS
0.3%