Skip to content

Joshua31400/Steam-City

Repository files navigation

Steam City

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


📖 About

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.

✨ Features

👤 User Features

  • 📚 Build and manage your personal game library
  • 🏆 Track achievements and gaming milestones
  • ⏱️ Monitor playtime and game statistics
  • 👤 Customize your user profile

🛡️ Admin Features

  • 🎮 Full CRUD operations for games (Create, Read, Update, Delete)
  • 👥 Complete user management system
  • 📊 View platform statistics and analytics
  • 🔐 Role-based access control

🔐 Authentications

  • 📧 Traditional email/password login
  • Google OAuth 2.0 integration
  • GitHub OAuth 2.0 integration
  • 🔒 Secure password hashing (bcrypt)
  • 🛡️ Protected routes with middleware

🐳 Docker

  • 🚀 Easy setup with Docker Compose
  • 🐘 MySQL database container
  • 🐳 PHP-FPM container for backend
  • 🌐 Nginx container for serving the application
  • 📊 phpMyAdmin container for database management

🚀 Installation

Prerequisites

Before you begin, ensure you have the following installed:

Step 1: Clone the Repository

git clone https://github.com/Joshua31400/Steam-City
cd Steam-City

Step 2: Execute in WSL

  1. 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

⚠️ IMPORTANT: Ne commitez JAMAIS le fichier .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:



💻 Technologies

Frontend

HTML5 CSS3 JavaScript

Backend

PHP MySQL Nginx

Tools & Services

Docker Git OAuth2


👥 Fichiers à partager/ne pas partager

✅ À POUSSER sur Git (fichiers du projet)

  • README.md - Documentation
  • APACHE_SETUP.md - Configuration Apache
  • .env.example - Template des variables d'environnement
  • sql/database.sql - Schéma de base de données
  • public/router.php - Routeur pour serveur PHP intégré
  • public/pages/*.php - Pages du site
  • public/style/*.css - Feuilles de style
  • internal/ - Dossier complet (controllers, models, routes, helpers)
  • config/constants.php, config/database.php, config/oauth.php - Configuration

❌ NE PAS POUSSER sur Git (fichiers locaux/sensibles)

  • .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.

📝 Comment gérer .env.example vs .env

  1. .env.example - Partagé sur Git (sans valeurs secrètes)
  2. .env - Chaque développeur crée son propre (à partir de .env.example)
  3. .gitignore - Assure que .env n'est jamais commité

Team

Project realized by:

Ynov Campus Toulouse - 2026

About

This project is for practice PHP and DataBase CRUD and realise a game manager with achivements to stimulate users, a copy off steam but web version.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors