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

2.3 KiB

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:

    python -m venv venv
    source venv/bin/activate
    
  2. Install dependencies:

    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:

    python manage.py migrate
    
  5. Create a superuser:

    python manage.py createsuperuser
    
  6. Run the development server:

    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