{"info":{"_postman_id":"d473c071-c193-4d5f-8e5a-0ffeadb14e25","name":"Vanguard AERO API","description":"<html><head></head><body><h1 id=\"vanguard-aero-squadron-operations-command-center\">🚀 Vanguard AERO — Squadron Operations Command Center</h1>\n<p>Vanguard AERO is a high-fidelity, interactive management platform engineered to orchestrate team-based activities within a decentralized squadron environment. It transitions unstructured community communication into a high-density, automated workflow: <strong>Discuss → Vote → Schedule → Play → Track</strong>.</p>\n<hr>\n<h2 id=\"🎯-project-overview\">🎯 Project Overview</h2>\n<h3 id=\"the-problem\">The Problem</h3>\n<p>In large-scale batch environments (e.g., 120+ students divided into squads), coordination via traditional messaging apps leads to:</p>\n<ul>\n<li><strong>Entropy</strong>: Important decisions are lost in chat history.</li>\n<li><strong>Opacity</strong>: No clear record of past performance or MVP status.</li>\n<li><strong>Inertia</strong>: Scheduling weekly operations manually is time-consuming and prone to error.</li>\n</ul>\n<h3 id=\"the-aero-solution\">The AERO Solution</h3>\n<p>AERO provides a centralized, <strong>Identity-First</strong> portal that serves as the \"source of truth\" for the squadron. It leverages real-time synchronization, 3D atmospheric immersion, and role-based permissions to ensure every operation is executed with precision.</p>\n<hr>\n<h2 id=\"🧠-technical-architecture\">🧠 Technical Architecture</h2>\n<h3 id=\"tech-stack\">Tech Stack</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Tier</th>\n<th>Technology</th>\n<th>Purpose</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><strong>Frontend</strong></td>\n<td>React 19 (Vite)</td>\n<td>High-performance UI rendering</td>\n</tr>\n<tr>\n<td><strong>State</strong></td>\n<td>Redux Toolkit</td>\n<td>Centralized state management &amp; persistence</td>\n</tr>\n<tr>\n<td><strong>3D Engine</strong></td>\n<td>Three.js / R3F</td>\n<td>Immersive \"AeroSky\" atmospheric background</td>\n</tr>\n<tr>\n<td><strong>Real-time</strong></td>\n<td>Socket.IO</td>\n<td>Bi-directional event synchronization</td>\n</tr>\n<tr>\n<td><strong>Styling</strong></td>\n<td>Tailwind CSS 4.0</td>\n<td>Utility-first, high-density design system</td>\n</tr>\n<tr>\n<td><strong>Animations</strong></td>\n<td>Framer Motion</td>\n<td>Cinematic transitions and micro-interactions</td>\n</tr>\n<tr>\n<td><strong>Backend</strong></td>\n<td>Node.js (Express)</td>\n<td>RESTful API &amp; Signaling server</td>\n</tr>\n<tr>\n<td><strong>Database</strong></td>\n<td>MongoDB</td>\n<td>Persistent storage for users, polls, and results</td>\n</tr>\n</tbody>\n</table>\n</div><hr>\n<h2 id=\"📂-granular-folder-architecture\">📂 Granular Folder Architecture</h2>\n<h3 id=\"🖥️-client-architecture-frontend\">🖥️ Client Architecture (<code>/frontend</code>)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">src/\n├── assets/          # Brand identity, icons, and 3D models\n├── components/      # Atomic UI components\n│   ├── AeroUI.jsx   # Design System (GlassPanel, AeroButton, etc.)\n│   ├── Layout.jsx   # Protected layout wrapper with Sidebar/Navbar\n│   └── SEO.jsx      # Dynamic meta-tag management for search/social\n├── hooks/           # Business logic abstractions\n│   ├── useAuth.js   # Identity &amp; Role management\n│   ├── useStorage.js# Type-safe Local/Session storage handlers\n│   └── useSocket.js # WebSocket lifecycle management\n├── pages/           # High-level views and route components\n│   ├── Dashboard.jsx# Operational overview and metrics\n│   ├── Polls.jsx    # Democratic decision-making hub\n│   └── Calendar.jsx # Squadron milestone scheduling\n├── redux/           # Global state slices and store config\n├── services/        # API clients and WebSocket definitions\n└── utils/           # Helper functions, constants, and mock data\n</code></pre>\n<h3 id=\"⚙️-server-architecture-backend\">⚙️ Server Architecture (<code>/backend</code>)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">src/\n├── config/          # DB connection &amp; Environment validation\n├── controllers/     # Orchestration logic for API endpoints\n├── middleware/      # JWT verification, logging, and error handling\n├── models/          # Data schemas (Users, Polls, GameHistory)\n├── routes/          # Express route definitions\n└── index.js         # Entry point &amp; Socket.IO server initialization\n</code></pre>\n<hr>\n<h2 id=\"🚀-installation--setup\">🚀 Installation &amp; Setup</h2>\n<h3 id=\"prerequisites\">Prerequisites</h3>\n<ul>\n<li><strong>Node.js</strong>: v18.x or higher</li>\n<li><strong>Package Manager</strong>: npm v9.x+ (preferred)</li>\n<li><strong>Environment</strong>: Access to a MongoDB instance (Local or Atlas)</li>\n</ul>\n<h3 id=\"1-repository-initialization\">1. Repository Initialization</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">git clone https://github.com/Dhvanitkanabar/teamaero.git\ncd teamaero\n</code></pre>\n<h3 id=\"2-frontend-configuration\">2. Frontend Configuration</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">cd frontend\nnpm install\n# Ensure .env contains:\n# VITE_API_URL=http://localhost:5000/api\n# VITE_SOCKET_URL=http://localhost:5000\nnpm run dev\n</code></pre>\n<h3 id=\"3-backend-configuration\">3. Backend Configuration</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">cd ../backend\nnpm install\n# Create a .env file:\n# PORT=5000\n# MONGO_URI=your_mongodb_connection_string\n# JWT_SECRET=your_secure_random_string\nnpm start\n</code></pre>\n<hr>\n<h2 id=\"✨-featured-systems\">✨ Featured Systems</h2>\n<h3 id=\"🛡️-smart-storage-utility\">🛡️ Smart Storage Utility</h3>\n<p>AERO uses a custom-built, fallback-aware storage engine located in <code>src/utils/storage.js</code>. </p>\n<ul>\n<li><strong>Persistent</strong>: <code>localStorage</code> stores theme preferences and non-sensitive operator metadata.</li>\n<li><strong>Ephemeral</strong>: <code>sessionStorage</code> manages multi-step form progress and temporary search filters.</li>\n<li><strong>Security</strong>: Sensitive data (passwords) are strictly excluded from storage; tokens are cleared instantly on session termination.</li>\n</ul>\n<h3 id=\"🗳️-squadron-operations-hub\">🗳️ Squadron Operations Hub</h3>\n<ul>\n<li><strong>Dynamic Polls</strong>: Real-time voting with instant result broadcasting.</li>\n<li><strong>Automated Scheduling</strong>: The system automatically flags \"Wednesday\" as a combat day but allows Admin overrides.</li>\n<li><strong>Leaderboard</strong>: Weighted ranking system based on Participation (40%), Performance (40%), and Achievements (20%).</li>\n</ul>\n<h3 id=\"🎨-high-density-uiux\">🎨 High-Density UI/UX</h3>\n<ul>\n<li><strong>AeroSky</strong>: A 3D atmospheric simulation that reacts to user navigation.</li>\n<li><strong>Glassmorphism</strong>: Deep blur effects with metallic borders for a \"technical aviation\" aesthetic.</li>\n<li><strong>Smooth Navigation</strong>: Integration of <code>Lenis</code> for momentum-based scrolling.</li>\n</ul>\n<hr>\n<h2 id=\"🛠️-development--quality-standards\">🛠️ Development &amp; Quality Standards</h2>\n<p>To maintain the project's high code quality, utilize the following built-in tools:</p>\n<ul>\n<li><strong>Linting</strong>: Run <code>npm run lint</code> to check for style violations.</li>\n<li><strong>Auto-Fix</strong>: Run <code>npm run lint:fix</code> to automatically resolve lint errors.</li>\n<li><strong>Formatting</strong>: Run <code>npm run format</code> to standardize the codebase using Prettier.</li>\n</ul>\n<hr>\n<p><strong>👨‍💻 Developed By</strong>: Vanguard Development Team\n<strong>📍 Project Scope</strong>: Squadron Coordination &amp; Activity Management Platform</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"🚀 Vanguard AERO — Squadron Operations Command Center","slug":"vanguard-aero-squadron-operations-command-center"}],"owner":"50840753","collectionId":"d473c071-c193-4d5f-8e5a-0ffeadb14e25","publishedId":"2sBXqKoKuJ","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-05-02T08:07:30.000Z"},"item":[{"name":"Auth","item":[{"name":"Login","id":"7bd68616-1a0b-4f24-b591-1edce155fae5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"userId\": \"108600\",\n    \"password\": \"123456\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/auth/login","description":"<p>Authenticates an operator with their GR Number/ID and password.</p>\n","urlObject":{"path":["auth","login"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[],"_postman_id":"7bd68616-1a0b-4f24-b591-1edce155fae5"}],"id":"650d50cb-cfb3-4e37-9f05-0761339a6554","description":"<p>Authentication and Identity Management</p>\n","_postman_id":"650d50cb-cfb3-4e37-9f05-0761339a6554"},{"name":"Operations","item":[{"name":"Get Polls","id":"99aef30d-ee32-46e9-9df9-837a71613aa1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/api/operations/polls","description":"<p>Retrieve all active and archived squadron polls.</p>\n","urlObject":{"path":["operations","polls"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[],"_postman_id":"99aef30d-ee32-46e9-9df9-837a71613aa1"},{"name":"Submit Vote","id":"0bde0d27-9742-40e9-ae9f-c2b5afda19c1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"optionId\": \"poll_opt_01\"\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/operations/polls/:id/vote","description":"<p>Cast a vote on a specific poll.</p>\n","urlObject":{"path":["operations","polls",":id","vote"],"host":["http://localhost:5000/api"],"query":[],"variable":[{"id":"67fdc23d-9efa-46a8-83c4-8468b2f1d946","type":"any","value":"poll_777","key":"id"}]}},"response":[],"_postman_id":"0bde0d27-9742-40e9-ae9f-c2b5afda19c1"},{"name":"Get Calendar Events","id":"1a54bfde-a94d-40d3-aa36-2a1a42677809","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/api/operations/calendar","description":"<p>Fetch the scheduled events for the current month.</p>\n","urlObject":{"path":["operations","calendar"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[],"_postman_id":"1a54bfde-a94d-40d3-aa36-2a1a42677809"}],"id":"9c125a74-1d9b-4362-94ba-7d0384f4fffc","description":"<p>Squadron Operation endpoints for Polls and Calendar</p>\n","_postman_id":"9c125a74-1d9b-4362-94ba-7d0384f4fffc"},{"name":"Leaderboard","item":[{"name":"Get Rankings","id":"6afb8c3d-caa3-4454-b8c9-f320e93dbd77","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"http://localhost:5000/api/rankings","description":"<p>Get current team rankings and MVP standings.</p>\n","urlObject":{"path":["rankings"],"host":["http://localhost:5000/api"],"query":[],"variable":[]}},"response":[],"_postman_id":"6afb8c3d-caa3-4454-b8c9-f320e93dbd77"}],"id":"30980fdf-13b7-4391-bca8-a237fdb672a3","description":"<p>Performance and Ranking endpoints</p>\n","_postman_id":"30980fdf-13b7-4391-bca8-a237fdb672a3"}],"variable":[{"key":"baseUrl","value":"http://localhost:5000/api"}]}