Upload 2 files
Browse files- README.md +86 -141
- requirements.txt +2 -1
README.md
CHANGED
@@ -1,66 +1,42 @@
|
|
1 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
-
|
4 |
|
5 |
-
|
6 |
|
7 |
-
|
8 |
-
- π Parse guest information from name and message columns
|
9 |
-
- β
Interactive guest selection with checkboxes
|
10 |
-
- π― Smart table arrangement algorithm
|
11 |
-
- π¨ Visual circular table layouts with seating positions
|
12 |
-
- π± Responsive design for mobile and desktop
|
13 |
-
- π¨ Modern, intuitive UI
|
14 |
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
-
|
18 |
-
- Web browser
|
19 |
|
20 |
-
|
|
|
|
|
21 |
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
cd LinkedInParty
|
26 |
-
```
|
27 |
|
28 |
-
|
29 |
-
```bash
|
30 |
-
pip install -r requirements.txt
|
31 |
-
```
|
32 |
|
33 |
-
|
34 |
|
35 |
-
|
36 |
-
```bash
|
37 |
-
python3 app.py
|
38 |
-
```
|
39 |
-
|
40 |
-
2. **Open your browser**
|
41 |
-
Navigate to `http://localhost:5000`
|
42 |
-
|
43 |
-
3. **Prepare your CSV file**
|
44 |
-
Your CSV should have exactly 2 columns:
|
45 |
-
- **First column**: guest names
|
46 |
-
- **Second column**: descriptions, roles, or messages
|
47 |
-
|
48 |
-
4. **Upload your guest list**
|
49 |
-
- Click "Upload Guest List" or drag and drop your CSV file
|
50 |
-
- The app will parse and display up to 100 guests
|
51 |
-
|
52 |
-
5. **Select guests for your event**
|
53 |
-
- Click on guest cards to select/deselect them
|
54 |
-
- You can select up to 30 guests (3 tables Γ 10 people)
|
55 |
-
- The stats panel shows your selection progress
|
56 |
-
|
57 |
-
6. **Arrange tables**
|
58 |
-
- Click "Arrange Tables" to automatically organize your selected guests
|
59 |
-
- The app will create three visual circular tables
|
60 |
-
- Each table shows seating positions with guest initials
|
61 |
-
- Hover over seats to see full names and descriptions
|
62 |
-
|
63 |
-
## CSV Format Example
|
64 |
|
65 |
```csv
|
66 |
name,message
|
@@ -71,112 +47,81 @@ Emily Davis,Data Scientist at AI Labs
|
|
71 |
David Wilson,Product Manager at Innovation Inc
|
72 |
```
|
73 |
|
74 |
-
##
|
75 |
-
|
76 |
-
The app
|
77 |
-
|
78 |
-
-
|
79 |
-
-
|
80 |
-
-
|
81 |
-
-
|
82 |
-
|
83 |
-
## How it Works
|
84 |
-
|
85 |
-
### CSV Processing
|
86 |
-
- Supports multiple CSV delimiters (comma, semicolon, tab)
|
87 |
-
- Automatically detects column headers
|
88 |
-
- Reads first column for names and second column for descriptions
|
89 |
-
- Handles various encoding formats
|
90 |
-
|
91 |
-
### Table Arrangement Algorithm
|
92 |
-
The app uses a smart distribution algorithm:
|
93 |
-
1. Categorizes guests by industry/role type based on message content
|
94 |
-
2. Distributes major categories evenly across 3 tables
|
95 |
-
3. Ensures each table has a maximum of 10 people
|
96 |
-
4. Balances the number of people per table
|
97 |
-
|
98 |
-
### Smart Categorization
|
99 |
-
Based on message content, guests are categorized as:
|
100 |
-
- **Tech**: engineer, developer, programmer, software, tech, it, data, ai, ml, technology, scientist
|
101 |
-
- **Business**: manager, director, ceo, founder, executive, business, strategy, operations, consultant, product
|
102 |
-
- **Creative**: designer, creative, marketing, content, writer, artist, media, communications, strategist
|
103 |
-
- **Sales**: sales, account, client, business development, partnership, account manager
|
104 |
-
- **Finance**: finance, accounting, investment, banking, financial, analyst, cfo
|
105 |
- **Other**: any roles not matching the above categories
|
106 |
|
107 |
-
|
108 |
-
- **Circular tables** with realistic seating arrangements
|
109 |
-
- **Even distribution** of seats around each table
|
110 |
-
- **Interactive elements** with hover effects
|
111 |
-
- **Responsive design** that works on all devices
|
112 |
|
113 |
-
|
|
|
|
|
|
|
|
|
114 |
|
115 |
-
|
116 |
|
117 |
-
|
118 |
-
|
119 |
-
- Check that the first column contains guest names
|
120 |
-
- Verify the second column contains role descriptions
|
121 |
|
122 |
-
|
123 |
-
- Make sure you're uploading a .csv file
|
124 |
-
- Check that the file isn't corrupted or empty
|
125 |
-
- Try a smaller file first to test the format
|
126 |
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
|
|
131 |
|
132 |
-
|
|
|
|
|
|
|
133 |
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
|
138 |
-
|
|
|
|
|
|
|
|
|
139 |
|
140 |
-
|
141 |
-
- `app.py`: Main Flask application with CSV processing
|
142 |
-
- Uses Python's built-in CSV module for parsing
|
143 |
-
- RESTful API endpoints for frontend communication
|
144 |
|
145 |
-
|
146 |
-
-
|
147 |
-
-
|
148 |
-
-
|
149 |
-
- Circular table visualization with CSS positioning
|
150 |
-
- Real-time statistics updates
|
151 |
|
152 |
-
|
153 |
-
- `flask`: Web framework
|
154 |
-
- `flask-cors`: Cross-origin resource sharing
|
155 |
-
- `werkzeug`: File upload handling
|
156 |
|
157 |
-
|
|
|
|
|
|
|
|
|
158 |
|
159 |
-
|
160 |
-
- Maximum 100 guests can be loaded from CSV
|
161 |
-
- CSV files only (no Excel or other formats)
|
162 |
-
- Guest data is not persistent between sessions
|
163 |
|
164 |
-
|
165 |
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
- [ ] Guest filtering by industry/company
|
171 |
-
- [ ] Integration with calendar systems
|
172 |
-
- [ ] Email invitations to guests
|
173 |
-
- [ ] 3D table visualization
|
174 |
-
- [ ] Drag & drop seating arrangements
|
175 |
|
176 |
-
##
|
177 |
|
178 |
-
|
179 |
|
180 |
-
|
181 |
|
182 |
-
|
|
|
1 |
+
---
|
2 |
+
title: Party Planner - Guest Table Arranger
|
3 |
+
emoji: π
|
4 |
+
colorFrom: blue
|
5 |
+
colorTo: purple
|
6 |
+
sdk: gradio
|
7 |
+
sdk_version: 5.34.2
|
8 |
+
app_file: app.py
|
9 |
+
pinned: false
|
10 |
+
---
|
11 |
|
12 |
+
# π Party Planner - Guest Table Arranger
|
13 |
|
14 |
+
A smart web application that helps you organize your guest list into optimal table arrangements for networking events and parties. Built with Gradio and deployed on Hugging Face Spaces.
|
15 |
|
16 |
+
## β¨ Features
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
+
- π **Easy CSV Upload**: Simply paste your CSV content or upload a file
|
19 |
+
- π§ **Smart Table Arrangement**: AI-powered algorithm that categorizes guests by industry/role
|
20 |
+
- π― **Optimal Distribution**: Automatically creates tables of 10 with balanced industry mix
|
21 |
+
- π **Visual Results**: Clear, formatted output showing table assignments
|
22 |
+
- π¨ **Modern Interface**: Beautiful, responsive Gradio interface
|
23 |
+
- π± **Mobile Friendly**: Works perfectly on all devices
|
24 |
|
25 |
+
## π How to Use
|
|
|
26 |
|
27 |
+
1. **Prepare Your CSV**: Create a CSV file with exactly 2 columns:
|
28 |
+
- **First column**: Guest names
|
29 |
+
- **Second column**: Job titles, roles, or descriptions
|
30 |
|
31 |
+
2. **Upload Your Data**:
|
32 |
+
- Paste your CSV content directly into the text box, OR
|
33 |
+
- Upload your CSV file using the file upload button
|
|
|
|
|
34 |
|
35 |
+
3. **Arrange Tables**: Click the "π― Arrange Tables" button to see the smart arrangement
|
|
|
|
|
|
|
36 |
|
37 |
+
4. **View Results**: See your guests organized into optimal table seating with industry-balanced distribution
|
38 |
|
39 |
+
## π CSV Format Example
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
|
41 |
```csv
|
42 |
name,message
|
|
|
47 |
David Wilson,Product Manager at Innovation Inc
|
48 |
```
|
49 |
|
50 |
+
## π§ Smart Categorization
|
51 |
+
|
52 |
+
The app automatically categorizes guests based on their job descriptions:
|
53 |
+
|
54 |
+
- **Tech**: engineer, developer, programmer, software, tech, data, AI, ML, scientist
|
55 |
+
- **Business**: manager, director, CEO, founder, executive, strategy, operations, consultant
|
56 |
+
- **Creative**: designer, creative, marketing, content, writer, artist, media
|
57 |
+
- **Sales**: sales, account, client, business development, partnership
|
58 |
+
- **Finance**: finance, accounting, investment, banking, analyst, CFO
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
- **Other**: any roles not matching the above categories
|
60 |
|
61 |
+
## π― Table Arrangement Algorithm
|
|
|
|
|
|
|
|
|
62 |
|
63 |
+
1. **Categorizes** guests by industry/role type
|
64 |
+
2. **Distributes** major categories evenly across tables
|
65 |
+
3. **Balances** table sizes (maximum 10 guests per table)
|
66 |
+
4. **Creates** unlimited tables as needed
|
67 |
+
5. **Ensures** diverse networking opportunities
|
68 |
|
69 |
+
## π Sample Output
|
70 |
|
71 |
+
```
|
72 |
+
π Successfully processed 25 guests!
|
|
|
|
|
73 |
|
74 |
+
π Created 3 table(s) with smart distribution:
|
|
|
|
|
|
|
75 |
|
76 |
+
π½οΈ **Table 1** (9 guests):
|
77 |
+
1. **John Smith** - Software Engineer at TechCorp
|
78 |
+
2. **Sarah Johnson** - Marketing Director at Creative Agency
|
79 |
+
3. **Michael Brown** - CEO of StartupXYZ
|
80 |
+
...
|
81 |
|
82 |
+
π½οΈ **Table 2** (8 guests):
|
83 |
+
1. **Emily Davis** - Data Scientist at AI Labs
|
84 |
+
2. **David Wilson** - Product Manager at Innovation Inc
|
85 |
+
...
|
86 |
|
87 |
+
π½οΈ **Table 3** (8 guests):
|
88 |
+
1. **Lisa Chen** - UX Designer at Design Studio
|
89 |
+
...
|
90 |
|
91 |
+
π **Table Statistics:**
|
92 |
+
Table 1: 9 guests
|
93 |
+
Table 2: 8 guests
|
94 |
+
Table 3: 8 guests
|
95 |
+
```
|
96 |
|
97 |
+
## π οΈ Technical Details
|
|
|
|
|
|
|
98 |
|
99 |
+
- **Framework**: Gradio (Python)
|
100 |
+
- **Algorithm**: Smart categorization and distribution
|
101 |
+
- **Deployment**: Hugging Face Spaces
|
102 |
+
- **Dependencies**: gradio>=4.0.0
|
|
|
|
|
103 |
|
104 |
+
## π¨ Features
|
|
|
|
|
|
|
105 |
|
106 |
+
- **Drag & Drop**: Easy file upload
|
107 |
+
- **Real-time Processing**: Instant table arrangement
|
108 |
+
- **Error Handling**: Clear error messages for invalid formats
|
109 |
+
- **Sample Data**: Built-in sample CSV for testing
|
110 |
+
- **Responsive Design**: Works on desktop and mobile
|
111 |
|
112 |
+
## π§ Local Development
|
|
|
|
|
|
|
113 |
|
114 |
+
To run this locally:
|
115 |
|
116 |
+
```bash
|
117 |
+
pip install gradio
|
118 |
+
python app.py
|
119 |
+
```
|
|
|
|
|
|
|
|
|
|
|
120 |
|
121 |
+
## π License
|
122 |
|
123 |
+
This project is for educational and personal use purposes.
|
124 |
|
125 |
+
---
|
126 |
|
127 |
+
**Made with β€οΈ for better networking events!**
|
requirements.txt
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
flask==3.0.0
|
2 |
flask-cors==4.0.0
|
3 |
werkzeug==3.1.3
|
4 |
-
gunicorn==21.2.0
|
|
|
|
1 |
flask==3.0.0
|
2 |
flask-cors==4.0.0
|
3 |
werkzeug==3.1.3
|
4 |
+
gunicorn==21.2.0
|
5 |
+
gradio>=4.0.0
|