Skip to content

parthhanda/PlayCore

Repository files navigation

🎮 PlayCore

PlayCore is a high-performance, full-stack gaming and tournament platform designed for modern esports communities. Featuring a premium Cyberpunk-inspired UI, PlayCore provides a seamless experience for players to organize squads, compete in tournaments, and engage in real-time social interaction.

Node.js React MongoDB Tailwind CSS Socket.io


🚀 Key Features & Implementation

🏆 Tournament Ecosystem

  • Automated Management: Complete CRUD operations for tournaments with automated status updates.
  • Participation Flow: Seamless joining process with modal-driven UI for better user experience.
  • Reminders: Integrated node-cron with Nodemailer to send automated tournament start reminders to participants.

👥 Squads & Social

  • Squad Orchestration: Users can create and manage their own gaming squads/teams.
  • Player Profiles: Personalized profiles showcasing stats, enrolled tournaments, and social activity.
  • Gaming News (Blog): A full-featured blog system for community updates, supporting rich text via react-quill.

💬 Real-time Interaction

  • Global & Direct Messaging: Instant communication platform-wide powered by Socket.io.
  • Live Notifications: Real-time alerts for tournament invites, squad updates, and social interactions.

🖼️ Enterprise File Handling

  • GridFS Integration: Leveraging multer-gridfs-storage to store high-resolution profile pictures and tournament banners directly in MongoDB, ensuring persistence across server restarts and deployments.

🛡️ Core Security & Reliability

  • Advanced Auth: JWT-based authentication with bcryptjs password hashing and secure HTTP-only cookies.
  • DDoS Protection: Rate limiting implement via express-rate-limit and sanitization with mongo-sanitize to prevent NoSQL injection.
  • Health Monitoring: Dedicated health-check endpoints for uptime monitoring.
  • Automated Cleanup: Scheduled background tasks (node-cron) to prune expired notifications and stale data.

🛠️ Tech Stack

Frontend

Backend


📂 Project Structure

PlayCore/
├── backend/            # Express.js Server & Logic
│   ├── config/         # Database & App configurations
│   ├── controllers/    # Route controllers
│   ├── models/         # Mongoose Schemas (User, Tournament, Squad, etc.)
│   ├── routes/         # API Route definitions
│   ├── socket/         # Socket.io handlers
│   └── utils/          # Middleware & Utility functions
├── frontend/           # React Application
│   ├── src/
│   │   ├── components/ # Reusable UI components
│   │   ├── context/    # Auth & Socket contexts
│   │   ├── pages/      # Views (Home, Dashboard, etc.)
│   │   └── utils/      # Client-side helpers
└── README.md           # Documentation

⚙️ Installation & Setup

1. Clone the repository

git clone https://github.com/your-username/PlayCore.git
cd PlayCore

2. Install Dependencies

# Install root dependencies
npm install

# Install frontend dependencies
cd frontend && npm install
cd ..

3. Environment Configuration

Create a .env file in the root directory and add the following:

PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
NODE_ENV=development
FRONTEND_URL=http://localhost:5173
EMAIL_SERVICE=gmail
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password

4. Run the Application

# Start both Backend & Frontend concurrently
npm run dev

📜 License

This project is licensed under the ISC License.


🤝 Contributing

Contributions are welcome! If you'd like to improve PlayCore, feel free to fork the repo and submit a PR.

Developed with ❤️ by Parth.

About

PlayCore is a full-stack MERN esports platform featuring a premium cyberpunk UI. It empowers users to manage squads, compete in tournaments, and communicate via real-time chat. Built with Socket.io and GridFS, it offers a high-performance, community-driven experience for modern gaming enthusiasts.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages