Official website for FRC Team 2151: Monty Pythons from Proviso Mathematics and Science Academy in Forest Park, IL.
Canonical website: https://frc2151.tech/
FIRST Robotics Competition team dedicated to engineering, programming, leadership, and inspiring the next generation of innovators.
- Home (
index.html) - Hero, About Us and robot spotlights, departments, Social Media, latest News, and contact form - About (
about.html) - Team history, values, and achievements - Our Robot (
monty.html) - Monty's details for the 2026 REBUILT season and upcoming SHOUT Robotics Competition - Sponsors (
sponsors.html) - Sponsor recognition and partnership info - News (
news.html) - Published team updates and full article views viapost.html?id=...
The public pages share responsive mobile navigation, branded gold accents, accessible focus states, and layouts tuned for common phone widths. Sponsor sections include contribution, funding, and benefits cards with team photography. The About page includes a responsive team-photo carousel, and the Home page includes a live Behold Instagram feed for @montypythons2151. News is powered by the optional Firebase News Admin page described below.
- Email: pmsarobotics@gmail.com
- Phone: (708) 338-4100
- Address: 8601 Roosevelt Road, Forest Park, IL 60130
- GitHub: Team-2151-Progrraming-Room
- Twitter/X: @frcteam2151
- Instagram: @montypythons2151
- YouTube: PMSA Robotics
- HTML/CSS/JS
- Hosted on GitHub Pages with the custom domain frc2151.tech
The public News page and homepage preview are backed by the frc-2151 Firebase project configured in assets/js/firebase-config.js. The static site remains deployable on GitHub Pages, and the Firebase web configuration is safe to expose in browser code; never commit service-account keys, private API keys, or other server credentials.
- Create or select a Firebase project at Firebase Console.
- Register a Web app and copy its configuration into
assets/js/firebase-config.jsif you are creating a different project. The repository is currently configured for thefrc-2151project. - Enable Google Authentication, Cloud Firestore, and Firebase Storage. Add
frc2151.tech(and your local development host) under Authentication → Settings → Authorized domains. - Deploy
firestore.rules,storage.rules, andfirestore.indexes.jsonwith the Firebase CLI, or copy the rules into the Firebase console. The published-post query uses thepostscomposite index declared infirestore.indexes.json. - Sign in once at
admin.html, copy the signed-in account’s Firebase UID, and manually create the firstadmins/{uid}document in Firestore. This initial bootstrap is required because no unauthenticated visitor can grant admin access. - After the first admin is authorized, use the Manage Members panel in
admin.htmlto add or remove teammates by their Google email. The panel writes only through rules that require an existing admin, and it prevents the signed-in account from removing itself. Existing UID-based entries inadmins/{uid}remain supported. - Return to
admin.htmlto create drafts, upload images undernews/<post-id>/, publish, edit, unpublish, or delete posts. Public pages query onlystatus == "published"; drafts are blocked by Firestore Rules as well as by the UI. - For local testing, serve the repository from an HTTP server (for example
python -m http.server 8000) and addlocalhostto Firebase Authorized domains. Openhttp://localhost:8000/and test the public News page,post.html?id=..., and the admin workflow.
The News Admin page uses Firebase Authentication for sign-in, Firestore for post metadata and Markdown, and Firebase Storage for images. Article Markdown is rendered through DOM APIs with protocol-checked links and images; post content is never inserted as unsanitized HTML. If Firebase is not configured or temporarily unavailable, public pages show friendly empty/error states and the rest of the site continues to work.