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,44 @@
<!DOCTYPE html>
<html>
<head>
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 600px;
margin: 0 auto;
padding: 20px;
}
.container {
background-color: #f9f9f9;
border-radius: 5px;
padding: 20px;
margin-top: 20px;
}
.header {
color: #2563eb;
font-size: 24px;
margin-bottom: 20px;
}
.footer {
margin-top: 30px;
font-size: 14px;
color: #666;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
Password Changed Successfully
</div>
<p>Hi {{ user.username }},</p>
<p>This email confirms that your password was recently changed on {{ site_name }}.</p>
<p>If you did not make this change, please contact our support team immediately.</p>
<div class="footer">
<p>Best regards,<br>The {{ site_name }} Team</p>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html>
<head>
<title>Password Changed - ThrillWiki</title>
</head>
<body>
<div style="max-width: 600px; margin: 0 auto; padding: 20px;">
<h1 style="color: #2b3a4a;">Password Changed</h1>
<p>Hi {{ user.username }},</p>
<p>Your password has been successfully changed on ThrillWiki.</p>
<p>If you did not make this change, please contact us immediately.</p>
<p>Best regards,<br>The ThrillWiki Team</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,47 @@
<!DOCTYPE html>
<html>
<head>
<title>Reset Your Password</title>
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 600px;
margin: 0 auto;
padding: 20px;
}
.button {
display: inline-block;
padding: 10px 20px;
background-color: #007bff;
color: white;
text-decoration: none;
border-radius: 5px;
margin: 20px 0;
}
.footer {
margin-top: 30px;
padding-top: 20px;
border-top: 1px solid #eee;
font-size: 0.9em;
color: #666;
}
</style>
</head>
<body>
<h2>Reset Your Password</h2>
<p>Hello {{ user.get_display_name }},</p>
<p>We received a request to reset your password. Click the button below to set a new password:</p>
<p>
<a href="{{ reset_url }}" class="button">Reset Password</a>
</p>
<p>This link will expire in 24 hours for security reasons.</p>
<p>If you didn't request this password reset, you can safely ignore this email. Your password will remain unchanged.</p>
<div class="footer">
<p>Best regards,<br>ThrillWiki Team</p>
<p>If you're having trouble clicking the button, copy and paste this URL into your browser:<br>
{{ reset_url }}</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<title>Password Reset Complete</title>
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 600px;
margin: 0 auto;
padding: 20px;
}
.success {
color: #28a745;
font-weight: bold;
}
.warning {
color: #dc3545;
font-weight: bold;
}
.footer {
margin-top: 30px;
padding-top: 20px;
border-top: 1px solid #eee;
font-size: 0.9em;
color: #666;
}
</style>
</head>
<body>
<h2>Password Reset Complete</h2>
<p>Hello {{ user.get_display_name }},</p>
<p class="success">Your password has been successfully reset.</p>
<p>You can now log in to your account with your new password.</p>
<p class="warning">If you did not make this change, please contact us immediately as your account may have been compromised.</p>
<div class="footer">
<p>Best regards,<br>ThrillWiki Team</p>
</div>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<!DOCTYPE html>
<html>
<head>
<title>Verify Your New Email Address</title>
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 600px;
margin: 0 auto;
padding: 20px;
}
.button {
display: inline-block;
padding: 10px 20px;
background-color: #007bff;
color: white;
text-decoration: none;
border-radius: 5px;
margin: 20px 0;
}
.footer {
margin-top: 30px;
padding-top: 20px;
border-top: 1px solid #eee;
font-size: 0.9em;
color: #666;
}
</style>
</head>
<body>
<h2>Hello {{ user.username }},</h2>
<p>We received a request to change your email address on ThrillWiki. To complete this change, please click the button below:</p>
<a href="{{ verification_url }}" class="button">Verify Email Address</a>
<p>If the button doesn't work, you can copy and paste this link into your browser:</p>
<p>{{ verification_url }}</p>
<p>This link will expire in 24 hours for security reasons.</p>
<p>If you did not request this change, please ignore this email or contact support if you have concerns.</p>
<div class="footer">
<p>Best regards,<br>The ThrillWiki Team</p>
<p>This is an automated message, please do not reply to this email.</p>
</div>
</body>
</html>