feat: complete monorepo structure with frontend and shared resources

- Add complete backend/ directory with full Django application
- Add frontend/ directory with Vite + TypeScript setup ready for Next.js
- Add comprehensive shared/ directory with:
  - Complete documentation and memory-bank archives
  - Media files and avatars (letters, park/ride images)
  - Deployment scripts and automation tools
  - Shared types and utilities
- Add architecture/ directory with migration guides
- Configure pnpm workspace for monorepo development
- Update .gitignore to exclude .django_tailwind_cli/ build artifacts
- Preserve all historical documentation in shared/docs/memory-bank/
- Set up proper structure for full-stack development with shared resources
This commit is contained in:
pacnpal
2025-08-23 18:40:07 -04:00
parent b0e0678590
commit d504d41de2
762 changed files with 142636 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
A website called ThrillWiki.com, a database website.
The site's main focus will be on the rides and attractions around the world in the amusement and theme park industries, with detailed stats on each park and ride available, along with photos and user submitted reviews. Each park and ride will be given an "average rating" based on the average review score. The site should have a fun, yet clean interface to keep the focus on what matters. A keen focus on photos of the ride and park is what I am looking for. The site will also have a light and dark theme, allowing users to choose how they would like to view the site. If available, the site will automatically respect the browser setting unless chosen otherwise.
The site will be responsive and fully usable on desktop or mobile devices. A navigation bar will sit at the top of the user page, guiding the user to parks and rides they wish to view. A search bar will also be in-line in this navigation area, allowing users to search for rides and parks based on names. The “parks” index and “rides” index will allow full filtering based on all of the categories and statistics of each park and ride, to make it easy to find the exact ride and park a user could be looking for. When the site is viewed on a phone, the navbar can collapse into a hamburger element, allowing the user the ability to still navigate around as needed. Once logged in, the users profile picture and username will be shown in the upper right corner, along with the ability to “edit profile”, “account settings”, and “logout”. If the user is a moderator, admin, or superuser, they can also find a link to the admin panel here.
Rides are in parks, so they should be shown on the park's page, with a link back to the park on the ride's page. Each page should be editable, which will then be either sent to the admin panel, or auto approved depending on their role. Each ride and parks page will have a “history” panel where users can view the history of the page to see what has changed over time regarding the park or ride. The site will also accommodate Theme Park/Amusement Park Operators, Ride Designers, and Ride Manufacturers.
Rides should have these key details:
Name (along with name history):
Ride category: Roller coaster, dark ride, flat ride, etc.
Opening date (if available):
Current status (with a “since $DATE” field to show when it was marked as the current status if the status is not “Operating”.
Status options: Operating, Closed, Standing But Not Operating, Demolished, Relocated, Under Construction, Unknown, Pending
Location (area of park if relevant)
Manufacturer
Other details: Other details can be a free flowing set of statistics such as previous locations or major changes to the ride throughout its history.
Closing date (if status is closed)
If the ride is a roller coaster type, it can have additional stats such as (but not limited to):
Height
Length
Ride time
Type of roller coaster
Train style
Maximum speed
Inversions (number of)
I want an admin panel that is very easy to use for moderators and admins to approve submissions to the site, such as new rides, parks, as well as edits to existing ones as well as photos. Submissions will be governed by a policy to only accept verified or publicly known edits. All submissions must have a note indicating why the edit or addition is needed. Admins will also have the ability to ban or unban users. Banned users are put in a list on a page where Admins can view who is currently banned and take further action.Superusers have all panels available, and can also view further details of users. This also takes on the need for a number of roles within the site, in the form of 4 key roles:
User - a registered user that can use the site's normal functions, make new submissions, edits, reviews, and upload photos. All user submissions need to be approved or rejected by a higher role. When making edits, users need to provide a reason for the edit and a source if available.
Moderator - has all the capabilities of a user but can submit their own edits, photos, and reviews without any approval process. Moderators also have access to the standard moderation panel where they are able to approve or reject submissions made by users. Approvals and rejections should always have a note from a moderator that is sent to the user detailing why theyre post was approved or rejected.
Admin - Admins have all capabilities of a normal User and Moderator, but can also add parks without approval, and have the full abilities to ban users for violating policy, rendering the banned user unable to use the site any longer (stopped at login).
Superuser - A superuser has the capabilities of all other roles plus the ability to change roles of others and make major settings changes on the website, as well as view user profile details that would otherwise be private.
User profiles should be a key aspect of the site as well, allowing users to upload a profile picture and have full profiles featuring their ride counts for each category of ride, and the ability to create “Top Lists” of each type of ride to make their opinions known. A users profile page should display their profile picture, display name, username, coaster credit count, links to social media accounts, pronouns, their recent submissions to the ThrillWiki (with a link to see all of the users submissions) and a small “About me” section where users can share a short bio about themselves.
The URLs should be patterned as such:
https://www.thrillwiki.com/park/disneyland
https://www.thrillwiki.com/park/disneyland/matterhorn
So thats:
https://www.thrillwiki.com/park/$park_name/$ride_name to access a ride
https://www.thrillwiki.com/park/disneyland to access a park
https://www.thrillwiki.com/user/$username to access a users profile page
https://www.thrillwiki.com/login - login page
https://www.thrillwiki.com/register - registration page
https://www.thrillwiki.com/terms - terms of service
https://www.thrillwiki.com/privacy - privacy policy