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
|