Files
FTCWebsite/replit.md
abhiramtx befc3160be Saved your changes before starting work
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
2025-11-08 22:13:45 +00:00

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 statistics
  • members - Team members with images, roles, names
  • mentors - Mentors/coaches with images, roles, names
  • competitions - Competition entries organized by season
  • sponsors - 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_URL
  • PGHOST, 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