This project is a web application that allows users to view and manage their games. Looks like a steam clone, but it's not trust us.
• Features
• Installation
• Technologies
• Team
Steam City is a full-stack web application inspired by Steam, designed to help gamers manage their personal game libraries. Built with modern web technologies, it provides a seamless experience for discovering games, tracking achievements, and managing your gaming profile.
Note: This is an educational project and not affiliated with Valve Corporation or Steam.
- 📚 Build and manage your personal game library
- 🏆 Track achievements and gaming milestones
- ⏱️ Monitor playtime and game statistics
- 👤 Customize your user profile
- 🎮 Full CRUD operations for games (Create, Read, Update, Delete)
- 👥 Complete user management system
- 📊 View platform statistics and analytics
- 🔐 Role-based access control
- 📧 Traditional email/password login
OAuth 2.0 integration
OAuth 2.0 integration
- 🔒 Secure password hashing (bcrypt)
- 🛡️ Protected routes with middleware
- 🚀 Easy setup with Docker Compose
- 🐘 MySQL database container
- 🐳 PHP-FPM container for backend
- 🌐 Nginx container for serving the application
- 📊 phpMyAdmin container for database management
Before you begin, ensure you have the following installed:
Step 1: Clone the Repository
git clone https://github.com/Joshua31400/Steam-City
cd Steam-CityStep 2: Execute in WSL
- Import the database schema:
docker-compose up -d Create/ edit .env with your credentials:
# Database Configuration
DB_HOST=localhost
DB_NAME=steam_city
DB_USER=root
DB_PASS=your_password
# Application
APP_URL=http://localhost:8080
# Google OAuth (optional)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_REDIRECT_URI=http://localhost:8080/auth/google/callback
# GitHub OAuth (optional)
GITHUB_CLIENT_ID=your_github_client_id
GITHUB_CLIENT_SECRET=your_github_client_secret
GITHUB_REDIRECT_URI=http://localhost:8080/auth/github/callback.env sur Git! Il contient vos secrets. Seul .env.example est partagé.
Puis accédez à:
http://localhost:8080
Ou avec WAMP/MAMP:
http://localhost/Steam-City/public/
Architecture:
README.md- DocumentationAPACHE_SETUP.md- Configuration Apache.env.example- Template des variables d'environnementsql/database.sql- Schéma de base de donnéespublic/router.php- Routeur pour serveur PHP intégrépublic/pages/*.php- Pages du sitepublic/style/*.css- Feuilles de styleinternal/- Dossier complet (controllers, models, routes, helpers)config/constants.php,config/database.php,config/oauth.php- Configuration
.env- Contient les secrets OAuth -⚠️ JAMAIS sur Git!php.ini- Configuration PHP locale (chemin différent par développeur)vendor/- Dépendances Composer (généré automatiquement).idea/- Configuration IDE locale- Fichiers temporaires - Cache, logs, etc.
.env.example- Partagé sur Git (sans valeurs secrètes).env- Chaque développeur crée son propre (à partir de .env.example).gitignore- Assure que.envn'est jamais commité
Project realized by:
- Sebastien DELVER - @DantesDels
- Joshua BUDGEN - @joshua31400
Ynov Campus Toulouse - 2026