Replit-Commit-Author: Agent Replit-Commit-Session-Id: 5e584ab0-c340-4432-97ef-1972582b60e9 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Event-Id: 6d4dbe7c-69e4-4510-bd62-638ff9c78d5c
3.9 KiB
3.9 KiB
FTC Team 23344 "Technical Turbulence" Website
Overview
Flask-based website for FTC Team 23344 with a modern dark theme (#000000 pure black background), comprehensive content management system, and PostgreSQL database integration.
Recent Changes (October 3, 2025)
Admin Panel System
Created a complete admin panel with password-protected access for managing all website content:
Access: /admin/login (Password: techturb123)
Features:
- 📊 Stats Management: Edit homepage statistics (seasons, members, awards, competitions)
- 👥 Members/Mentors Management: Add, edit, remove team members and mentors with profile picture uploads
- 🏆 Competitions Management: Add competitions by season with optional images, awards (bullet points), descriptions, event names, and dates
- 💼 Sponsors Management: Add/remove sponsors with logo uploads and website URLs
Database Integration
- Migrated all content from hardcoded templates to PostgreSQL database
- All public pages now pull data dynamically from database
- Data persists across server restarts
- Initial data seeded from existing website content
Database Schema:
stats- Homepage statisticsmembers- Team members with images, roles, namesmentors- Mentors/coaches with images, roles, namescompetitions- Competition entries organized by seasonsponsors- Sponsor cards with logos and URLs
Design Improvements
- Pure black (#000000) background throughout
- Cinematic hero section (700px tall) with darkened team image and text overlay
- Light gray text (gray-300) for paragraph content
- Reduced top margins on headers (40px instead of 64px)
- Mobile-responsive with optimized padding (20px/16px)
- Modern cards with 20px border radius and blue accent hover effects
Project Structure
├── app.py # Flask routes, database connections, admin system
├── templates/
│ ├── admin/ # Admin panel templates
│ │ ├── login.html
│ │ ├── base.html # Admin layout with side navigation
│ │ ├── stats.html
│ │ ├── members.html
│ │ ├── competitions.html
│ │ └── sponsors.html
│ ├── base.html # Public site layout
│ ├── home.html # Homepage with stats from DB
│ ├── contributors.html # Team members from DB
│ ├── competitions.html # Competitions from DB
│ └── sponsors.html # Sponsors from DB
├── static/
│ ├── css/styles.css # All styling
│ ├── js/scripts.js
│ └── images/ # Team photos, logos, uploads
└── replit.md # This file
Technology Stack
- Backend: Flask (Python)
- Database: PostgreSQL (Neon-backed via Replit)
- Session Management: Flask-Session
- File Uploads: Werkzeug secure_filename
- Frontend: HTML5, CSS3, JavaScript
User Preferences
- Pure black (#000000) background theme
- Gray-300 text color for paragraphs (light grayish, not pure white)
- Preserve hero section layered image design (michiana.png + techturb.gif)
- Minimal navbar with blur effect
- Dramatic spacing reduction throughout site
- Mobile-first responsive design
Database Connection
Environment variables automatically configured:
DATABASE_URLPGHOST,PGPORT,PGUSER,PGPASSWORD,PGDATABASE
Security Notes
- Admin password currently hardcoded (techturb123) - consider moving to environment variable for production
- Session secret key uses environment variable with fallback
- File uploads use secure_filename to prevent path traversal
- Admin routes protected with session-based authentication
Future Considerations
- Add admin password management
- Implement image optimization for uploads
- Add bulk operations for members/competitions
- Consider adding revision history for content changes
- Add export/backup functionality for database content