# ThrillWiki Initial Setup

## Project Overview
ThrillWiki is a database website focused on rides and attractions in the amusement and theme park industries. The site features detailed statistics, photos, and user reviews for parks and rides worldwide.

## Technical Stack
- Backend: Django 5.1.2
- Frontend: React + Material UI + Alpine.js + HTMX
- Database: PostgreSQL
- Authentication: django-allauth (with Discord and Google OAuth support)
- Email: ForwardEmail.net SMTP

## Key Features
- Full authentication system with social login support
- Responsive design for desktop and mobile
- Light/dark theme support
- Rich media support for ride and park photos
- User review system with average ratings
- Inline editing for authenticated users
- Page history tracking
- Advanced search and filtering capabilities

## Project Structure
```
thrillwiki/
├── accounts/         # User authentication and profiles
├── api/             # REST API endpoints
├── docs/            # Project documentation
├── frontend/        # React frontend application
├── media/          # User-uploaded content
├── parks/          # Park-related models and views
├── reviews/        # User reviews functionality
├── rides/          # Ride-related models and views
├── static/         # Static assets
├── templates/      # Django templates
└── thrillwiki/     # Project settings and core configuration
```

## Setup Instructions
1. Create and activate a virtual environment:
   ```bash
   python -m venv venv
   source venv/bin/activate
   ```

2. Install dependencies:
   ```bash
   pip install -r requirements.txt
   ```

3. Configure environment variables:
   - Copy ***REMOVED***.example to ***REMOVED***
   - Update the variables with your specific values

4. Set up the database:
   ```bash
   python manage.py migrate
   ```

5. Create a superuser:
   ```bash
   python manage.py createsuperuser
   ```

6. Run the development server:
   ```bash
   python manage.py runserver
   ```

## Next Steps
- [ ] Implement user models and authentication views
- [ ] Create park and ride models
- [ ] Set up review system
- [ ] Implement frontend components
- [ ] Configure social authentication
- [ ] Set up email verification
- [ ] Implement search and filtering
- [ ] Add media handling
