Skip to content

GameHaven, a full-stack web application that allows users to buy, sell, and trade video games securely.

Notifications You must be signed in to change notification settings

MedGm/GameHaven

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 

Repository files navigation

GameHaven – Video Games Marketplace 🎮

mainpage

Welcome to GameHaven, a full-stack web application that allows users to buy, sell, and trade video games securely. Built with Symfony (backend) and React 18 (frontend), GameHaven provides a dynamic user experience with features like secure authentication, game listings, wishlist management, and integrated payment processing using Stripe.

📌 Key Features

  • User Authentication: JWT-based authentication with role-based access.
  • Game Listings: Create, update, search, and manage game listings.
  • Wishlist Management: Keep track of your favorite games.
  • Secure Payments: Integrated with Stripe for payment processing.
  • Robust Backend: RESTful API built with Symfony and Doctrine ORM.
  • Optimized Data Management: Powered by PostgreSQL.
  • Responsive Frontend: Modern React 18 UI with dynamic navigation.

🚀 Tech Stack

  • Backend: [Symfony Logo], Doctrine ORM, LexikJWT, NelmioCorsBundle
  • Frontend: [React Logo React 18], React Router, Axios
  • Database: [PostgreSQL Logo PostgreSQL]
  • APIs & Tools: [Postman Logo Postman], Stripe API

📁 Project Hierarchy

GameHaven/
├── backend/
│   ├── config/
│   ├── src/
│   ├── public/
│   └── ...
├── frontend/
│   ├── public/
│   ├── src/
│   │   ├── components/
│   │   ├── utils/
│   │   └── ...
│   └── package.json
└── README.md

⚙️ Setup & Installation

Backend (Symfony)

  1. Clone the repository:

    git clone https://github.com/yourusername/GameHaven.git
    cd GameHaven/backend
  2. Install dependencies:

    composer install
  3. Create and configure the .env file:

    cp .env.example .env

    Update the following fields in .env:

    • DATABASE_URL
    • JWT_SECRET_KEY, JWT_PUBLIC_KEY, JWT_PASSPHRASE
    • CORS_ALLOW_ORIGIN
    • STRIPE_SECRET_KEY, STRIPE_PUBLIC_KEY
  4. Generate JWT keys:

    mkdir -p config/jwt
    openssl genpkey -algorithm RSA -out config/jwt/private.pem -aes256 -pass pass:your_passphrase
    openssl rsa -pubout -in config/jwt/private.pem -out config/jwt/public.pem -passin pass:your_passphrase
  5. Database Setup:

    php bin/console doctrine:database:create
    php bin/console doctrine:migrations:migrate
  6. Run Symfony server:

    symfony server:start

Frontend (React)

  1. Navigate to frontend directory:

    cd ../frontend
  2. Install dependencies:

    npm install
  3. Configure environment variables:

    • Copy .env.example to .env and update:
      • REACT_APP_API_URL (Backend API URL)
      • REACT_APP_STRIPE_PUBLIC_KEY
  4. Start the development server:

    npm start

    The app should run at http://localhost:3000.

🛠️ Running & Testing the Application

  • Use Postman for API testing.
  • Browser-based testing for the frontend.
  • Monitor logs for backend Symfony server and React development server for debugging.

🎯 Final Thoughts

GameHaven is designed to deliver a seamless gaming marketplace experience. Contributions, feedback, or issues are welcome—feel free to open an issue or a pull request.


Happy coding! 🚀🎮

Connect with me on LinkedIn

About

GameHaven, a full-stack web application that allows users to buy, sell, and trade video games securely.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published