A web application built with Flask as the backend API and a frontend served from a built static folder. This project demonstrates a full-stack setup with Flask RESTful API, JWT authentication, database migrations, and a frontend using modern JavaScript tooling.
- REST API implemented with Flask-RESTx
- User authentication with Flask-JWT-Extended
- Database integration and migrations via SQLAlchemy and Flask-Migrate
- CORS enabled for cross-origin resource sharing
- Frontend built and served as static files from the
frontend/distfolder - Modular route namespaces for users, events, venues, and RSVPs
- Environment configuration with dotenv
A full-stack web application for creating and managing events, built with Flask backend and modern JavaScript frontend.
Prerequisites Python 3.8+
Node.js 14+
Clone and setup
bash git clone https://github.com/MorrisKM/flask-project.git cd flask-project/backend Create virtual environment
bash python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate Install dependencies
bash pip install -r requirements.txt Setup environment
bash
SECRET_KEY=your_secret_key JWT_SECRET_KEY=your_jwt_secret_key Setup database
bash flask db upgrade Run the application
bash flask run
The frontend is built and served automatically from the frontend/dist folder. No separate setup required!
Backend Features:
β REST API with Flask-RESTx
π JWT Authentication
ποΈ Database with SQLAlchemy
π API Documentation at /docs
π― Event creation and management
π₯ User registration and login
π Venue management β RSVP system
π API Endpoints Users: Registration, login, profile management
Events: Create, read, update, delete events
Venues: Manage event locations
RSVPs: Handle event attendance
ποΈ Project Structure text backend/ βββ frontend/dist/ # Built frontend files βββ routes/ # API route namespaces βββ migrations/ # Database migrations βββ models.py # Database models βββ extensions.py # Flask extensions βββ run.py # Application entry point π§ Development API Docs: Visit /docs after running the app
Database: SQLite with Flask-Migrate for schema changes
Authentication: JWT tokens for secure API access
CORS: Enabled for cross-origin requests
π Deployment Ready The app is configured for production with:
Static file serving from built frontend
Environment-based configuration
Database migration system