Files
thrillwiki_django_no_react/docs/2024-02-14/initial_setup.md
2024-10-28 17:09:57 -04:00

79 lines
2.3 KiB
Markdown

# 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