A comprehensive event and community calendar platform that enables users to create calendars, organize events, and build communities around shared interests.
- Calendar Management: Create branded calendars with customizable settings
- Event Organization: Create, publish, and manage events with detailed information
- Event Discovery: Search and filter events by date, location, and category
- Registration System: Handle event registrations with approval workflows
- Payment Processing: Integrated Stripe payment processing for paid events
- Notification System: Multi-channel notifications (email, push, in-app)
- Premium Features: Calendar Plus subscription with enhanced capabilities
- Community Building: Calendar subscriptions and follower system
- FastAPI: High-performance REST API framework
- SQLAlchemy: Database ORM with async support
- Alembic: Database migration management
- PostgreSQL: Primary database
- Redis: Caching and session storage
- Pydantic: Data validation and serialization
- Next.js 14: React framework with App Router
- TypeScript: Type-safe development
- Tailwind CSS: Utility-first CSS framework
- shadcn/ui: Modern UI component library
- TanStack Query: Data fetching and caching
- NextAuth: Authentication solution
- Docker: Containerized development environment
- Stripe: Payment processing
- Email Service: Transactional email delivery
- Docker and Docker Compose
- Node.js 18+ (for local frontend development)
- Python 3.11+ (for local backend development)
-
Clone the repository:
git clone <repository-url> cd event-management-platform
-
Copy environment variables:
cp .env.example .env
-
Start the services:
docker-compose up -d
-
The application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
-
Navigate to the backend directory:
cd backend -
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up the database:
alembic upgrade head
-
Run the development server:
uvicorn main:app --reload
-
Navigate to the frontend directory:
cd frontend -
Install dependencies:
npm install
-
Run the development server:
npm run dev
event-management-platform/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── core/ # Core configuration
│ │ ├── models/ # SQLAlchemy models
│ │ ├── schemas/ # Pydantic schemas
│ │ └── api/ # API routes
│ ├── alembic/ # Database migrations
│ ├── requirements.txt # Python dependencies
│ └── main.py # Application entry point
├── frontend/ # Next.js frontend
│ ├── src/
│ │ ├── app/ # Next.js app directory
│ │ ├── components/ # React components
│ │ ├── lib/ # Utility functions
│ │ └── types/ # TypeScript types
│ ├── package.json # Node.js dependencies
│ └── next.config.js # Next.js configuration
├── docker-compose.yml # Docker services
└── README.md # This file
The API documentation is automatically generated and available at:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
To create a new migration:
cd backend
alembic revision --autogenerate -m "Description of changes"To apply migrations:
alembic upgrade headcd backend
pytestcd frontend
npm test- Fork the repository
- Create a feature branch
- Make your changes
- Add tests for new functionality
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.