A nostalgic, retro-styled web application for tracking your completed video games. Built with modern web technologies and featuring a classic arcade aesthetic.
- Complete CRUD Operations: Add, view, edit, and delete games
- Smart Image Management: Local image storage with automatic fallbacks
- Advanced Filtering: Search by name, filter by platform/genre, sort by various criteria
- Year-based Organization: Automatic categorization by completion year
- Rating System: 5-star rating system for each game
- Statistics Dashboard: Track total games, hours played, average rating, and top genre
- Neon Color Palette: Cyan, pink, green, and yellow neon accents
- Retro Typography: Press Start 2P and Orbitron fonts
- Animated Background: Subtle pulsing gradients and effects
- Glowing Elements: Neon glow effects on buttons and borders
- Smooth Animations: Hover effects, transitions, and micro-interactions
- Responsive Design: Optimized for desktop and mobile devices
- Airtable Integration: Cloud-based data storage and synchronization
- Local Image Caching: Faster loading with local game cover images
- Progressive Enhancement: Works without JavaScript for basic functionality
- Modern CSS: Flexbox, Grid, and CSS custom properties
- Accessibility: Semantic HTML and keyboard navigation support
๐ฎ Play with the Retro Game Catalog
- Modern web browser (Chrome, Firefox, Safari, Edge)
- Airtable account and API token
- Basic understanding of web development (optional)
-
Clone the repository
git clone https://github.com/zehroque21/game-catalog.git cd game-catalog -
Open in browser
# Option 1: Direct file access open index.html # Option 2: Local server (recommended) python -m http.server 8000 # Then visit http://localhost:8000
-
Configure Airtable
- Visit the app in your browser
- Enter your Airtable API token when prompted
- Start adding your games!
-
Create Airtable Base
- Sign up at airtable.com
- Create a new base called "Game Catalog"
-
Create Table Structure
Table Name: GamesSimple Fields: - Name (Single line text) - Platform (Single line text) - Genre (Single line text) - StartDate (Single line text) - CompletionDate (Single line text) - HoursPlayed (Single line text) - Rating (Single line text) - Comments (Long text) - ImageURL (Single line text) - Status (Single line text) -
Get API Token
- Go to airtable.com/create/tokens
- Create a new token with read/write permissions
- Copy the token (starts with
pat...)
- Click the "ADD GAME" button
- Fill in the required fields (Name, Platform, Genre, Completion Date)
- Optionally add hours played, rating, comments, and cover image URL
- Click "Add Game" to save
- Edit: Click the "Edit" button on any game card
- Delete: Click the "Delete" button and confirm
- Search: Use the search box to find specific games
- Filter: Use dropdown filters for platform and genre
- Sort: Choose sorting criteria (name, rating, hours, date)
Games are automatically organized by completion year. Click on year tabs to filter games by specific years.
The dashboard shows:
- Total games completed
- Total hours played
- Average rating across all games
- Most played genre
The retro color palette can be customized in styles.css:
:root {
--neon-cyan: #00ffff;
--neon-pink: #ff00ff;
--neon-green: #00ff00;
--neon-yellow: #ffff00;
/* ... more colors */
}- Add images to
images/games/directory - Update
game-images-mapping.jswith the mapping:const gameImageMapping = { 'Game Name': 'images/games/game-cover.jpg', // ... more mappings };
The app uses two main fonts:
- Press Start 2P: For headings and retro elements
- Orbitron: For body text and modern elements
game-catalog/
โโโ index.html # Main HTML file
โโโ styles.css # Retro styling and animations
โโโ script-airtable.js # Main application logic
โโโ game-images-mapping.js # Local image mapping
โโโ images/
โ โโโ games/ # Game cover images
โโโ README.md # This file
โโโ .gitignore # Git ignore rules
- Chrome 60+
- Firefox 55+
- Safari 12+
- Edge 79+
- Lazy loading for images
- Efficient DOM manipulation
- Minimal external dependencies
- Optimized CSS animations
- Client-side token storage
- HTTPS-only API calls
- Input validation and sanitization
- No server-side dependencies
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Commit your changes
git commit -m 'Add amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow existing code style
- Test on multiple browsers
- Ensure mobile responsiveness
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Fonts: Google Fonts (Press Start 2P, Orbitron)
- Icons: Font Awesome
- API: Airtable for data storage
- Inspiration: Classic arcade games and retro computing aesthetics
If you encounter any issues or have questions:
- Check the Issues: Look for existing solutions
- Create an Issue: Describe your problem in detail
- Join Discussions: Share ideas and feedback
Track your gaming journey in style with the Retro Game Catalog. Whether you're a casual gamer or a hardcore completionist, this tool helps you celebrate your gaming achievements with a nostalgic flair.
Made with โค๏ธ and lots of โ by the gaming community


