Skip to content

rtavarezz/Choosy

Choosy πŸŽ‰

The future of group decision-making
Plan events together, vote with style, discover amazing local experiences.

A modern group decision-making platform that makes planning activities with friends effortless and fun. No more endless group chats trying to decide where to go!

✨ Features

  • πŸ—³οΈ Smart Group Voting - Choose between single-card or multi-card carousel interfaces
  • 🎬 Multiple Voting Styles - Single-card focus OR multi-card carousel preview
  • 🌍 Real Event Discovery - Live events from Eventbrite, Meetup, and local APIs
  • πŸ“± Mobile-First Design - Responsive interface that works everywhere
  • ⚑ Real-Time Results - See votes update instantly across all devices
  • 🎯 Location-Based - Find events and activities near you
  • πŸ† Gamification - Points, achievements, and streaks for active voters
  • πŸ€– AI Recommendations - Learns your preferences over time

πŸš€ 5-Second Setup

Prerequisites: Python 3.8+ and Node.js 16+

# Clone the repository
git clone https://github.com/rtavarezz/choosy.git
cd choosy

# Launch everything with one command! 🎊
python3 start_choosy.py

That's it! The script will:

  • βœ… Check all dependencies
  • πŸ“¦ Set up virtual environments
  • πŸ”§ Install Python and Node.js packages
  • πŸ—„οΈ Initialize the SQLite database
  • πŸš€ Start both backend and frontend servers
  • 🌈 Show beautiful colored progress updates

Open your browser:

πŸ”§ Manual Setup (If Needed)

Click to expand manual setup instructions

Backend Setup

cd backend
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
python init_sqlite.py     # Initialize database
python start_server.py    # Start backend

Frontend Setup

cd frontend
npm install
npm run dev

βš™οΈ Configuration (Optional)

Choosy works out of the box with mock data, but for real live events, get these free API keys:

1. Copy Environment Files

# Backend environment (for API keys)
cp backend/main.env.example backend/main.env

# Frontend environment (for local development)  
cp frontend/.env.example frontend/.env.local

2. Get API Keys (Free Tiers Available)

Eventbrite API (Recommended - Global Events)

Unsplash API (For Beautiful Event Images)

Optional APIs (for more event sources):

Note: Without API keys, Choosy uses local mock data and placeholder images. Perfect for testing and development!

πŸ“± How It Works

  1. Create a Plan - Choose your vibe: nightlife, food, concerts, adventures, etc.
  2. Invite Friends - Share a simple link, no account required
  3. Swipe to Vote - Everyone swipes right (❀️) or left (❌) on activities
  4. See Results - Real-time winner with booking integration

πŸ”§ Troubleshooting

Port already in use?

# Kill processes on ports 3000 and 8000
lsof -ti:3000 | xargs kill -9
lsof -ti:8000 | xargs kill -9

Python/Node.js not found?

Permission errors on macOS/Linux?

chmod +x start_choosy.py
chmod +x launch.sh

Still having issues?

  • Check choosy-backend.log and choosy-frontend.log for error details
  • Open an issue with your error logs

πŸ› οΈ Tech Stack

  • Frontend: Next.js 14, TypeScript, Tailwind CSS, Framer Motion
  • Backend: FastAPI, SQLAlchemy, SQLite/PostgreSQL
  • Real-time: WebSockets, Redis caching
  • APIs: Eventbrite, Meetup, Ticketmaster, Unsplash
  • Deployment: Docker, Vercel, Railway

🎯 Project Status

  • βœ… MVP Complete - Full end-to-end functionality
  • βœ… Mobile Responsive - Works on all devices
  • βœ… Real-time Voting - Live updates across browsers
  • βœ… Event Integration - Live API data
  • 🚧 Authentication - Phone verification (optional)
  • 🚧 Push Notifications - Vote reminders
  • πŸ’­ AI Recommendations - Learning user preferences

🀝 Contributing

We'd love your help! Please read our CONTRIBUTING.md for:

  • Code contribution guidelines
  • Legal requirements (CLA)
  • Development standards
  • Community guidelines

πŸ”’ Security

Found a security issue? Please review our Security Policy for responsible disclosure.

πŸ“„ License

MIT License - see LICENSE file for details.


Built with ❀️ by rtavarezz
Making group decisions fun again!