Welcome to PSSIG — a web application designed to organize and manage intellectual games with integrated social network elements, offering players engaging experiences, rich statistics, and dynamic interactions. This platform provides users with the ability to create, participate in, and manage games while fostering a vibrant community through player profiles, real-time interactions, and game analytics.
- User Registration & Authentication: Secure user management system with role-based access.
- Profile Management: Customizable user profiles with statistics and activity tracking.
- Game Creation & Management: Organize and run intellectual games, invite participants, and manage results.
- Real-time Statistics: In-depth analytics of games with personalized reports and performance tracking.
- Social Network Features: Comments, discussions, and interaction with other players during and after games.
- Game History & Leaderboards: Track user progress and global rankings.
- Scalable Microservices: Optimized for high-performance and scalable to support large numbers of users and games.
PSSIG utilizes a three-layer architecture to ensure scalability, maintainability, and flexibility:
-
Data Access Layer (DAL):
- Uses Entity Framework for data modeling and MS SQL Server for persistent storage.
-
Business Logic Layer (BLL):
- Contains core services such as game management, user profiles, statistics, and notifications.
- Implements caching using Redis to optimize performance.
-
Presentation Layer:
- RESTful API built with ASP.NET Core Web API.
- Frontend developed with React TypeScript and Shadcn UI.
API Gateway and nginx handle routing and ensure secure access to the microservices.
-
Backend:
- ASP.NET Core Web API
- Entity Framework Core
- Redis (caching)
- MS SQL Server
- API Gateway (nginx)
-
Frontend:
- React (TypeScript)
- Shadcn UI
- jQuery (for Ajax requests)
-
Communication:
- WebSocket (for real-time interactions)
-
Tools:
- Docker (for containerization)
- JetBrains Rider (IDE)
- Postman (API testing)
- .NET 7.0 SDK
- Node.js & npm
- MS SQL Server
- Docker
-
Clone the repository:
git clone https://github.com/your-username/pssig.git
-
Navigate to the backend folder and install dependencies:
cd backend dotnet restore
-
Navigate to the frontend folder and install dependencies:
cd ../frontend npm install
-
Setup the database:
- Configure your
appsettings.json
with the MS SQL Server connection string. - Run the migrations:
dotnet ef database update
- Configure your
-
Run the backend:
dotnet run
-
Run the frontend:
npm start
-
Access the app: Open
http://localhost:3000
in your browser.
- Admin Panel: Manage users, games, and global settings.
- Player Dashboard: View and join available games, check personal statistics, and interact with other players.
- Create a Game: Organize a new game, set the rules, and invite players to participate.
- Leaderboard: View global rankings and personal achievements.
All endpoints are documented using Swagger, accessible at http://localhost:5000/swagger
once the backend is running.
Key API features include:
- Authentication (
/auth
) - User Profiles (
/users
) - Game Management (
/games
) - Statistics (
/stats
) - Social Interactions (
/comments
)
- Mobile App: Native mobile application for iOS and Android using Flutter.
- Game Variations: Introduce new game types and genres.
- Advanced Analytics: Provide deeper insights using machine learning for personalized performance recommendations.
- Monetization Features: Integrate premium features for enhanced game experiences.
This project is licensed under the MIT License - see the LICENSE file for details.
Thank you for using PSSIG!
Happy gaming and let the intellectual challenges begin! ✨