A Flask-based web application for organizing and joining outdoor activities including hiking, camping, community cleanups, and more.
Route Venture is a platform that connects outdoor enthusiasts to explore nature together. The name reflects the fusion of "Route" (the paths we explore) and "Venture" (the thrill of adventure and discovering nature).
- Home Page - Welcome page with platform introduction and features
- Browse Events - View and enroll in upcoming outdoor events
- Create Event - Organize new outdoor adventures
- Admin Dashboard - Manage events, users, and view statistics
- Event Management: Create, view, update, and delete outdoor events
- User Registration: Quick sign-up to participate in events
- Event Enrollment: Join events with real-time availability tracking
- Admin Dashboard: Comprehensive statistics and management tools
- Responsive Design: Bootstrap 5 for mobile-friendly interface
- RESTful API: Complete API for all CRUD operations
flask_sqlite_project/
│
├── app.py # Main Flask application (login routes added)
├── database.py # Database operations
├── config.py # Configuration settings
├── requirements.txt # Python dependencies
├── README.md # Project documentation
│
├── templates/ # HTML templates
│ ├── index.html # Home page
│ ├── enroll.html # Event enrollment page
│ ├── create.html # Event creation page
│ ├── admin.html # Admin dashboard
│ ├── admin_login.html # Admin login page (password required)
│ └── contact.html # Contact page
│
├── static/ # Static files
│ ├── css/
│ │ └── style.css # Custom styles
│ ├── js/
│ │ ├── enroll.js # Enrollment page logic
│ │ ├── create.js # Event creation logic
│ │ └── admin.js # Admin dashboard logic
│ └── images/ # Image assets
│ ├── background.jpg # Login page background image
│ ├── hiking/ # Hiking event images
│ ├── camping/ # Camping event images
│ ├── biking/ # Biking event images
│ ├── climbing/ # Climbing event images
│ ├── cleanup/ # Community cleanup event images
│ └── heroes/ # Hero section images (future use)
│
└── route_venture.db # SQLite database (auto-created)
id- Primary keyname- User's full nameemail- Unique email addresscreated_at- Registration timestamp
id- Primary keytitle- Event titledescription- Event detailsevent_type- Type (hiking, camping, cleanup, etc.)location- Event locationevent_date- Event dateevent_time- Event timemax_participants- Maximum attendees (optional)created_by- Organizer user IDcreated_at- Creation timestamp
id- Primary keyevent_id- Foreign key to eventsuser_id- Foreign key to usersenrolled_at- Enrollment timestamp- Unique constraint on (event_id, user_id)
- Python 3.8 or higher
- pip (Python package installer)
-
Clone the repository
cd ~/Downloads/flask_sqlite_project
-
Create virtual environment
python3 -m venv venv
-
Activate virtual environment
macOS/Linux:
source venv/bin/activateWindows:
venv\Scripts\activate
-
Install dependencies
pip3 install -r requirements.txt
-
Run the application
python3 app.py
-
Access the application Open your browser and navigate to:
http://localhost:5000
GET /api/users- Get all usersGET /api/user/<id>- Get specific userPOST /api/user/add- Create new userPUT /api/user/update/<id>- Update userDELETE /api/user/delete/<id>- Delete user
GET /api/events- Get all eventsGET /api/event/<id>- Get specific eventPOST /api/event/add- Create new eventPUT /api/event/update/<id>- Update eventDELETE /api/event/delete/<id>- Delete event
POST /api/enroll- Enroll user in eventPOST /api/unenroll- Unenroll user from eventGET /api/event/<id>/enrollments- Get event participantsGET /api/user/<id>/enrollments- Get user's enrollments
GET /api/admin/stats- Get dashboard statistics
- Navigate to Create Event page
- Fill in event details:
- Event title and description
- Event type (hiking, camping, etc.)
- Location
- Date and time
- Maximum participants (optional)
- Provide your organizer information
- Click Create Event
- Navigate to Browse Events page
- Register your user account (quick form at top)
- Browse available events
- Click Enroll Now on desired event
- Confirm enrollment
- Navigate to Admin page
- View statistics dashboard
- Use tabs to manage:
- Events Management
- Users Management
- Statistics
- Backend: Flask 3.0.0 (Python web framework)
- Database: SQLite3 (lightweight database)
- Frontend: Bootstrap 5.3.0 (responsive UI framework)
- Icons: Bootstrap Icons 1.11.0
- JavaScript: Vanilla JS (ES6+)
- Responsive navigation bar
- Card-based layout for events
- Form validation
- Modal dialogs
- Tabbed interface
- Toast notifications
- Mobile-first design
- Hiking
- Camping
- Community Cleanup
- Biking
- Kayaking
- Rock Climbing
- Other
- Quick user registration
- Real-time event availability
- Search and filter events
- Visual event type indicators
- Enrollment confirmation
- LocalStorage for user persistence
The application uses config.py for environment settings:
- Development: Debug mode enabled
- Production: Debug mode disabled
- Testing: Separate test database
- Change SECRET_KEY in config.py
- Use environment variables for sensitive data
- Implement proper authentication
- Add input validation
- Enable HTTPS
- Use production WSGI server (Gunicorn/uWSGI)
- Implement rate limiting
- Add CORS protection
Port 5000 already in use (macOS)
- Disable AirPlay Receiver in System Preferences
- Or change port in app.py to 5001
Database locked error
- Close other database connections
- Restart the application
Module not found errors
- Ensure virtual environment is activated
- Reinstall requirements:
pip3 install -r requirements.txt
Planned features:
- QR code event sign-up links
- Email confirmation for enrollments
- WhatsApp messaging integration
- Interactive map API integration
- Admin charts for demographics (age, gender)
- User authentication (JWT tokens)
- Photo upload for events
- Rating and review system
- Calendar integration
- Mobile app version
Place the generated files in your project structure as follows:
flask_sqlite_project/
├── app.py # [2] Updated Flask application
├── database.py # [3] Updated database operations
├── requirements.txt # [12] Python dependencies
├── templates/
│ ├── index.html # [4] Home page
│ ├── enroll.html # [5] Enrollment page
│ ├── create.html # [6] Event creation page
│ └── admin.html # [7] Admin dashboard
└── static/
├── css/
│ └── style.css # [11] Custom styles
└── js/
├── enroll.js # [8] Enrollment logic
├── create.js # [9] Creation logic
└── admin.js # [10] Admin logic
This project is for educational and demonstration purposes.
For issues or questions:
- Check all prerequisites are installed
- Verify virtual environment is activated
- Ensure all files are in correct directories
- Check Flask server is running
- Review browser console for JavaScript errors
Route Venture brings together outdoor enthusiasts and tech innovation. Whether organizing a mountain hike, beach camping trip, or park cleanup, our platform makes it easy to connect with like-minded adventurers.
Built with ❤️ for the outdoor community
Happy Adventuring! 🏔️🏕️🚴