“Polytrack Codes” is a comprehensive community platform for sharing and managing user-generated tracks for the Polytrack racing game. The application features real-time Firebase synchronization, advanced filtering, leaderboard integration, time tracking with Chart.js visualizations, and a sophisticated tag-based organization system. With its modern glassmorphism design and Formula 1-inspired typography, it serves as a central hub for the Polytrack community.
polytrack/
├── index.html # Main application (27,311 lines - extensive feature set)
└── README.md # Comprehensive technical documentation
<!-- Advanced charting library -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<!-- Firebase SDK for real-time database -->
<script src="https://www.gstatic.com/firebasejs/9.22.2/firebase-app-compat.js"></script>
<script src="https://www.gstatic.com/firebasejs/9.22.2/firebase-firestore-compat.js"></script>
const firebaseConfig = {
apiKey: "AIzaSyDl8lWOajuxLXWrlR4L0R0n6SNK4sxcyTY",
authDomain: "polytrack-3d608.firebaseapp.com",
projectId: "polytrack-3d608",
storageBucket: "polytrack-3d608.appspot.com",
messagingSenderId: "64709899732",
appId: "1:64709899732:web:ae44c1bff52de856b9d241"
};
// Comprehensive track document schema
{
name: "Track Name", // Track identifier
code: "Track Code String", // Shareable game code
creator: "Creator Name", // Track author
uploaded: Date, // Submission timestamp
tags: [{text: "TagName", color: "#HexColor"}], // Categorization system
bestTime: Number, // Current record time
bestTimeSubmitter: "Record Holder", // Champion name
bestTimeHistory: [ // Complete time progression
{
time: Number,
submitter: "Name",
timestamp: Number,
version: "kodub|beta" // Game version tracking
}
],
submittedTimes: Array, // All submitted times
overallRatingAverage: Number, // Community rating
overallRatingCount: Number, // Rating participation
leaderboardURL: "External URL" // Optional leaderboard integration
}
@font-face {
font-family: 'Formula1';
src: url('../fonts/Formula1-Regular.ttf') format('truetype');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Formula1';
src: url('../fonts/Formula1-Bold.ttf') format('truetype');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Formula1';
src: url('../fonts/Formula1-Black.ttf') format('truetype');
font-weight: 900;
font-style: normal;
}
@font-face {
font-family: 'Formula1-Wide';
src: url('../fonts/Formula1-Wide.ttf') format('truetype');
font-weight: 400;
font-style: normal;
}
:root {
--bg-primary: #0A0E15; /* Deep dark background */
--bg-secondary: #1C2028; /* Secondary panels */
--text-primary: #FFFFFF; /* Primary text */
--text-secondary: #CCCCCC; /* Secondary text */
--glass-bg: rgba(255, 255, 255, 0.1); /* Glassmorphism */
--glass-border: rgba(255, 255, 255, 0.2); /* Glass borders */
}
[data-theme="light"] {
--bg-primary: #F5F5F5; /* Light gray background */
--bg-secondary: #FFFFFF; /* White panels */
--text-primary: #1A1A1A; /* Dark text */
--text-secondary: #666666; /* Gray text */
--glass-bg: rgba(0, 0, 0, 0.1); /* Dark glass */
--glass-border: rgba(0, 0, 0, 0.2); /* Dark borders */
}
/* Priority-based tag coloring */
--tag-fh: #4285F4; /* Free Helicopter - Blue */
--tag-fast: #0F9D58; /* Fast tracks - Green */
--tag-short: #F4B400; /* Short tracks - Yellow */
--tag-gimmick: #AB47BC; /* Gimmick tracks - Purple */
--tag-mlaps: #C62828; /* Multi-lap tracks - Red */
--tag-f1: #FB8C00; /* Formula 1 style - Orange */
--tag-long: #E91E63; /* Long tracks - Pink */
--tag-beta: #F8F9FA; /* Beta content - Off-white */
.container {
display: flex;
flex-direction: row;
gap: 20px;
padding: 20px;
max-width: 1400px;
margin: 0 auto;
}
.column {
flex: 1; /* Equal column distribution */
display: flex;
flex-direction: column;
gap: 15px;
}
/* Champion dock offset compensation */
.column:nth-child(2) {
margin-top: 60px; /* Offset for champion dock */
}
.champion-dock {
position: fixed;
top: 20px;
left: 50%;
transform: translateX(-50%);
background: var(--glass-bg);
backdrop-filter: blur(20px);
border: 1px solid var(--glass-border);
border-radius: 20px;
padding: 15px;
z-index: 1000;
}
.champion-item {
display: flex;
align-items: center;
gap: 10px;
padding: 8px;
}
/* Medal color system */
.champion-text { color: #FFD700; } /* Gold */
.silver-text { color: #C0C0C0; } /* Silver */
.bronze-text { color: #CD7F32; } /* Bronze */
// Live Firestore listener for real-time updates
db.collection('tracks')
.orderBy('uploaded', 'desc')
.onSnapshot((snapshot) => {
snapshot.docChanges().forEach((change) => {
if (change.type === 'added') {
createCodeBox(change.doc.data(), change.doc.id);
} else if (change.type === 'modified') {
updateCodeBox(change.doc.data(), change.doc.id);
} else if (change.type === 'removed') {
removeCodeBox(change.doc.id);
}
});
});
// Advanced filtering with multiple criteria
function filterTracks() {
const searchTerm = searchBar.value.toLowerCase();
const codeBoxes = document.querySelectorAll('.code-box');
codeBoxes.forEach(box => {
const searchData = box.getAttribute('data-search').toLowerCase();
const isVisible = searchData.includes(searchTerm);
box.style.display = isVisible ? 'block' : 'none';
});
redistributeColumns(); // Dynamic column rebalancing
}
function createTimeChart(trackId, timeHistory) {
const ctx = document.getElementById(`chart-${trackId}`).getContext('2d');
new Chart(ctx, {
type: 'line',
data: {
labels: timeHistory.map(entry => new Date(entry.timestamp).toLocaleDateString()),
datasets: [{
label: 'Best Times',
data: timeHistory.map(entry => entry.time),
borderColor: getTrackColor(trackId),
backgroundColor: getTrackColor(trackId, 0.1),
fill: true,
tension: 0.4,
pointBackgroundColor: timeHistory.map(entry =>
entry.version === 'kodub' ? '#C086EA' : '#FAF9F6'
)
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: { display: false },
tooltip: {
callbacks: {
label: function(context) {
const entry = timeHistory[context.dataIndex];
return `${entry.time}s by ${entry.submitter} (${entry.version})`;
}
}
}
},
scales: {
y: {
beginAtZero: false,
grid: { color: 'rgba(255,255,255,0.1)' },
ticks: { color: '#CCCCCC' }
},
x: {
grid: { color: 'rgba(255,255,255,0.1)' },
ticks: { color: '#CCCCCC' }
}
}
}
});
}
// Comprehensive banned content system
const bannedNames = [
// Inappropriate content filter
"inappropriate", "offensive", "spam"
// ... extensive list for content moderation
];
// Name alias system for consistency
const nameAliases = {
"LW": "Logan W",
"LogW": "Logan W",
// ... additional aliases
};
function validateSubmission(name, content) {
// Length validation
if (name.length > 10) return false;
// Content filtering
if (bannedNames.some(banned =>
name.toLowerCase().includes(banned.toLowerCase()) ||
content.toLowerCase().includes(banned.toLowerCase())
)) {
return false;
}
// Apply aliases
if (nameAliases[name]) {
return nameAliases[name];
}
return name;
}
.modal-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: var(--modal-bg);
backdrop-filter: blur(10px);
z-index: 2000;
display: none;
justify-content: center;
align-items: center;
}
.modal-content {
background: var(--bg-secondary);
border-radius: 20px;
padding: 30px;
max-width: 500px;
width: 90%;
max-height: 80vh;
overflow-y: auto;
}
function createTagsGrid() {
const tags = [
{ text: 'FH', color: '#4285F4' },
{ text: 'Fast', color: '#0F9D58' },
{ text: 'Short', color: '#F4B400' },
{ text: 'Gimmick', color: '#AB47BC' },
{ text: 'MLaps', color: '#C62828' },
{ text: 'F1', color: '#FB8C00' },
{ text: 'Long', color: '#E91E63' },
{ text: 'Beta', color: '#F8F9FA' }
];
const grid = document.getElementById('tagsGrid');
tags.forEach(tag => {
const button = document.createElement('button');
button.className = 'tag-btn';
button.textContent = tag.text;
button.style.backgroundColor = tag.color;
button.onclick = () => toggleTag(button, tag);
grid.appendChild(button);
});
}
// Kodub version integration
function openKodub() {
window.open('https://polytrack.net/', '_blank');
}
// Beta version integration
function openBeta() {
window.open('https://beta.polytrack.net/', '_blank');
}
// External leaderboard synchronization
async function syncLeaderboardForDoc(docId, leaderboardUrl) {
try {
const response = await fetch(leaderboardUrl);
const data = await response.json();
// Update Firestore with external leaderboard data
await db.collection('tracks').doc(docId).update({
bestTime: data.bestTime,
bestTimeSubmitter: data.bestPlayer,
lastSynced: firebase.firestore.FieldValue.serverTimestamp()
});
} catch (error) {
console.error('Leaderboard sync failed:', error);
}
}
// Optimized column redistribution
function redistributeColumns() {
const visibleBoxes = Array.from(document.querySelectorAll('.code-box'))
.filter(box => box.style.display !== 'none');
const columns = document.querySelectorAll('.column');
columns.forEach(col => col.innerHTML = '');
// Distribute boxes evenly across columns
visibleBoxes.forEach((box, index) => {
const columnIndex = index % 3;
columns[columnIndex].appendChild(box);
});
}
// Proper Chart.js instance cleanup
const chartInstances = new Map();
function destroyChart(trackId) {
const chartInstance = chartInstances.get(trackId);
if (chartInstance) {
chartInstance.destroy();
chartInstances.delete(trackId);
}
}
async function copyToClipboard(text) {
try {
await navigator.clipboard.writeText(text);
showNotification('Code copied to clipboard!', 'success');
} catch (err) {
// Fallback for older browsers
const textArea = document.createElement('textarea');
textArea.value = text;
document.body.appendChild(textArea);
textArea.select();
document.execCommand('copy');
document.body.removeChild(textArea);
showNotification('Code copied!', 'success');
}
}
// Persistent username storage
function saveUsername(username) {
localStorage.setItem('polytrack_username', username);
}
function loadUsername() {
const saved = localStorage.getItem('polytrack_username');
if (saved) {
document.getElementById('timeSubmitter').value = saved;
}
}
function createStarRating() {
const container = document.createElement('div');
container.className = 'star-rating';
for (let i = 1; i <= 5; i++) {
const star = document.createElement('span');
star.className = 'star';
star.textContent = '☆';
star.onclick = () => setRating(i);
container.appendChild(star);
}
return container;
}
function setRating(rating) {
selectedRating = rating;
document.querySelectorAll('.star').forEach((star, index) => {
star.textContent = index < rating ? '★' : '☆';
star.style.color = index < rating ? '#F4B400' : '#CCCCCC';
});
}
@media (max-width: 768px) {
.container {
flex-direction: column; /* Stack columns on mobile */
gap: 10px;
}
.champion-dock {
position: relative; /* Mobile-friendly positioning */
top: auto;
left: auto;
transform: none;
margin-bottom: 20px;
}
.code-box {
margin-bottom: 15px; /* Increased mobile spacing */
}
}
function sanitizeInput(input) {
return input
.replace(/[<>]/g, '') // Remove HTML brackets
.replace(/javascript:/gi, '') // Remove JavaScript protocols
.replace(/on\w+=/gi, '') // Remove event handlers
.trim()
.substring(0, 100); // Length limitation
}
// Client-side validation before Firestore submission
function validateTrackSubmission(data) {
const errors = [];
if (!data.name || data.name.length > 10) {
errors.push('Track name must be 1-10 characters');
}
if (!data.code || data.code.length < 10) {
errors.push('Track code must be valid');
}
if (data.tags && data.tags.length > 3) {
errors.push('Maximum 3 tags allowed');
}
return errors;
}
Polytrack Codes represents a sophisticated community platform that successfully combines modern web technologies with professional game industry aesthetics. The comprehensive Firebase integration, advanced visualization capabilities, and thoughtful user experience design create an invaluable resource for the Polytrack gaming community.
Technical Rating: 9.3/10
The application successfully demonstrates how community-driven platforms can enhance gaming experiences through thoughtful technology integration and professional design standards.