Overview
Poway Auto uses Jekyll for static site generation with configuration managed through_config.yml, environment-specific JavaScript settings, and build tools.
Jekyll Configuration
_config.yml
The main Jekyll configuration file (_config.yml:1-22):
Key Settings
Site Metadata
title- Site name displayed in browser and navigationdescription- SEO and meta descriptionowner_name- Site owner for footer and attributiongithub_username/github_repo- Repository information
Base URL
Theme Configuration
Plugins
Navigation
API Configuration
Environment Detection
The API configuration inassets/js/api/config.js automatically detects the environment:
| Environment | Hostname | API Base URL |
|---|---|---|
| Local (localhost) | localhost | http://localhost:8888 |
| Local (IP) | 127.0.0.1 | http://127.0.0.1:8888 |
| Production | ahaanv19.github.io | https://autonomous.stu.nighthawkcodingsociety.com |
Changing API Endpoints
To use a different backend: Development:Fetch Configuration
mode: 'cors'- Enable cross-origin requestscredentials: 'include'- Send cookies with requestscache: 'default'- Use browser cache when appropriateX-Origin: 'client'- Custom header to identify frontend
Map Configuration
OpenStreetMap Setup
Fromnavigation/findBestRoute/map.js (map.js:6-9):
- Default center:
[32.7157, -117.1611](San Diego area) - Default zoom:
12 - Tile provider: OpenStreetMap (free, no API key required)
Alternative Map Providers
Mapbox:Geolocation
Automatic user location detection (map.js:13-19):Build Configuration
Makefile Settings
Customize build behavior in the Makefile:Jekyll Server Options
The server command (Makefile:92-94):Deployment Configuration
GitHub Pages
GitHub Actions Workflow
The project uses GitHub Actions for deployment (.github/workflows/jekyll-gh-pages.yml):
Repository Settings
-
Enable GitHub Pages:
- Go to repository Settings > Pages
- Source: GitHub Actions
- Branch: main
-
Set baseurl in _config.yml:
-
Custom domain (optional):
Environment Variables
For sensitive configuration, use environment variables: GitHub Secrets:- Go to Settings > Secrets > Actions
- Add secrets (e.g.,
API_KEY,MAP_API_KEY) - Access in workflow:
Theme Customization
Tailwind Configuration
The base layout includes custom Tailwind config (base.html:12-34):Dark Mode
Dark mode is configured with class-based toggling (base.html:114-128):Custom Styles
Add custom CSS in the base layout or create a separate stylesheet: In_layouts/base.html:
_sass/custom.scss:
Development Settings
Hot Reload
The Makefile includes automatic regeneration detection (Makefile:26-38):Logging
Jekyll output is logged to/tmp/jekyll{PORT}.log:
Production Optimizations
Minification
Enable in _config.yml:Caching
Service worker for offline support:Troubleshooting
Port Already in Use
Build Errors
Theme Not Loading
Configuration Checklist
Local Development
Local Development
- Install Ruby and Bundler
- Install Python dependencies
- Set PORT in Makefile if needed
- Start backend server on port 8888
- Run
maketo start frontend - Access http://127.0.0.1:4887/QAV_Frontend/
API Configuration
API Configuration
- Verify API endpoints in config.js
- Test CORS settings
- Configure authentication
- Set up credentials handling
GitHub Pages Deployment
GitHub Pages Deployment
- Set baseurl in _config.yml
- Enable GitHub Pages in repository settings
- Configure GitHub Actions workflow
- Verify build succeeds
- Test production site
Production
Production
- Update API endpoints for production
- Enable CSS/JS minification
- Configure caching
- Test on mobile devices
- Verify HTTPS
Next Steps
Project Structure
Explore the file organization and build system
API Integration
Learn about backend communication patterns