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.
- 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.
- Backend: [
], Doctrine ORM, LexikJWT, NelmioCorsBundle
- Frontend: [
React 18], React Router, Axios
- Database: [
PostgreSQL]
- APIs & Tools: [
Postman], Stripe API
GameHaven/
├── backend/
│ ├── config/
│ ├── src/
│ ├── public/
│ └── ...
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── utils/
│ │ └── ...
│ └── package.json
└── README.md
-
Clone the repository:
git clone https://github.com/yourusername/GameHaven.git cd GameHaven/backend
-
Install dependencies:
composer install
-
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
-
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
-
Database Setup:
php bin/console doctrine:database:create php bin/console doctrine:migrations:migrate
-
Run Symfony server:
symfony server:start
-
Navigate to frontend directory:
cd ../frontend
-
Install dependencies:
npm install
-
Configure environment variables:
- Copy
.env.example
to.env
and update:REACT_APP_API_URL
(Backend API URL)REACT_APP_STRIPE_PUBLIC_KEY
- Copy
-
Start the development server:
npm start
The app should run at http://localhost:3000.
- Use Postman for API testing.
- Browser-based testing for the frontend.
- Monitor logs for backend Symfony server and React development server for debugging.
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! 🚀🎮