Files
moto-adv-website/README.md
ske087 fc463dc69a Migrate from Next.js to Flask: Complete motorcycle adventure community website
- Replace Next.js/React implementation with Python Flask
- Add colorful blue-purple-teal gradient theme replacing red design
- Integrate logo and Transalpina panoramic background image
- Implement complete authentication system with Flask-Login
- Add community features for stories and tracks sharing
- Create responsive design with Tailwind CSS
- Add error handling with custom 404/500 pages
- Include Docker deployment configuration
- Add favicon support and proper SEO structure
- Update content for Pensiune BuonGusto accommodation
- Remove deprecated Next.js files and dependencies

Features:
 Landing page with hero section and featured content
 User registration and login system
 Community section for adventure sharing
 Admin panel for content management
 Responsive mobile-first design
 Docker containerization with PostgreSQL
 Email integration with Flask-Mail
 Form validation with WTForms
 SQLAlchemy database models
 Error pages and favicon handling
2025-07-23 14:42:40 +03:00

160 lines
4.5 KiB
Markdown

# Motorcycle Adventure Community
A Flask-based web application for motorcycle enthusiasts featuring adventure stories, route sharing, and accommodation recommendations.
## Features
- **Landing Page**: Hero section with call-to-action, featured adventures, and accommodation promotion
- **User Authentication**: Registration and login system with Flask-Login
- **Community Section**: Share stories, tracks, and experiences
- **Admin Panel**: Content management for administrators
- **Responsive Design**: Built with Tailwind CSS for mobile-first design
- **Error Handling**: Custom 404 and 500 error pages
## Technology Stack
- **Backend**: Python Flask 3.0.0
- **Database**: SQLAlchemy with PostgreSQL support
- **Authentication**: Flask-Login
- **Email**: Flask-Mail
- **Forms**: WTForms with validation
- **Styling**: Tailwind CSS (CDN)
- **Deployment**: Docker with Gunicorn
## Project Structure
```
/
├── app/
│ ├── __init__.py # Flask app factory
│ ├── models.py # Database models
│ ├── forms.py # WTForm definitions
│ ├── routes/ # Route blueprints
│ │ ├── main.py # Main routes (index, about)
│ │ ├── auth.py # Authentication routes
│ │ └── community.py # Community features
│ ├── templates/ # Jinja2 templates
│ │ ├── base.html # Base template
│ │ ├── index.html # Landing page
│ │ ├── auth/ # Auth templates
│ │ └── errors/ # Error pages
│ └── static/ # Static assets
│ ├── favicon.ico
│ └── images/
├── config.py # Application configuration
├── requirements.txt # Python dependencies
├── run.py # Application entry point
├── Dockerfile # Docker configuration
└── docker-compose.yml # Docker Compose setup
```
## Quick Start
### Local Development
1. **Clone the repository**
```bash
git clone <repository-url>
cd motorcycle-adventure-community
```
2. **Create virtual environment**
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
3. **Install dependencies**
```bash
pip install -r requirements.txt
```
4. **Set environment variables**
```bash
export FLASK_APP=run.py
export FLASK_ENV=development
export SECRET_KEY="your-secret-key-here"
export DATABASE_URL="sqlite:///motorcycle_adventures.db"
```
5. **Initialize database**
```bash
flask db init
flask db migrate -m "Initial migration"
flask db upgrade
```
6. **Run the application**
```bash
python run.py
```
### Docker Deployment
1. **Build and run with Docker Compose**
```bash
docker-compose up --build
```
2. **Access the application**
- Web application: http://localhost:5000
- PostgreSQL database: localhost:5432
## Configuration
The application supports multiple environments through environment variables:
- `FLASK_ENV`: development, testing, production
- `SECRET_KEY`: Flask secret key for sessions
- `DATABASE_URL`: Database connection string
- `MAIL_SERVER`: SMTP server for email
- `MAIL_USERNAME`: Email username
- `MAIL_PASSWORD`: Email password
## Features Overview
### Landing Page
- Hero section with stunning mountain panorama background
- Call-to-action for adventure community
- Featured adventures showcase
- Pensiune BuonGusto accommodation promotion
### Authentication System
- User registration with email validation
- Secure login/logout functionality
- Password hashing with Werkzeug
- Session management with Flask-Login
### Community Features
- Story and track sharing
- User profiles
- Image uploads for adventures
- GPX file support for route sharing
- Comment system
- Like/rating system
### Admin Panel
- User management
- Content moderation
- Analytics dashboard
- System configuration
## Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgments
- Beautiful Transalpina panorama background image
- Tailwind CSS for responsive design
- Flask community for excellent documentation
- Bootstrap icons for UI elements