A group project to create a fully functional website with front and backend.
It will be a single-page application
Master <--- โ
--- Dev <--- โ
--- Microservices
.....|............................................................|
.....|_______________ โ ______________|
- Base of the project
- PostgreSQL
- Django backend
- Rest API to connect back and frontend
- Frontend with React
- Nginx proxy
- Backend
- Django
- Frontend
- React app
-
docker-compose.dev.yaml (later)
-
docker-compose.yaml
- backend
- each microservice is an app
- PostgreSQL database
- frontend
- nginx proxy
- backend
-
images (not customized yet for front and back)
- Installs python and other required packages
- Installs and sets venv
- Installs django
- Echoes the venv activation to bashrc
- Copies the starting script to the image
- Exposes the port
- Entrypoint (not always, depends because some things wont work directly from dockerfile)
- CMD to run
- .github folder
- workflows
- workflow_name.yaml
- workflows
- workflow jobs
- testing
- need to upload artifacts
- building
- need to download the uploaded artifacts
- ceraful with the correct path
- deploying
- in case of react project, in github settings directory should be changed to /doc instead of root
- testing
postgreSQL
React Tailwind ThreeJS
-
Multi language support
-
Extra browser support
-
Multiple device support
-
Fullscreen mode for games except on IOS
-
root / Login
- Register with username email and password to the site
- Login with your username and password
- Login via 42 auth
-
Home
- Readme styled (kinda)
-
Game & Watch
- Pong
- Original
- AI Opponent
- Multiplayer
- 3D Pong
- Future game
- Pong
-
Chat
- Channels
- Online ppl
- Image Sharing
-
Profile
- Basic details
- Friends
- Match history
-
About Us
-
Logout
- Microservices (kind of)
- Authentication service
- Game
- Normal mode
- Balanced matchmaking
- Optimized responsiveness
- Gamplay statistics
- Secure data storing
- Extra game
- AI opponent
- Acessibility features
- More browser support
- Multiple language support
- Security tools
- Chat
- Direct messages
- Access to profiles
- Sending invite to play
- Let players know who is next in line
- Statistics
- Win rate
- Score
- Match amount against players
- etc
PONG
- Extra Pong versions implemented:
- AI Pong
- 3D Pong
our braincells
Done: โ Not done: โ
Plan everything as a microservice โ
Basic structure โ
Backend structure setup โ
First mindmap โ
Docker files for services โ
Hashed passwords โ
Using OAuth system from 42 โ
CI/CD pipeline setup โ
Deploying to github pages โ
Setting unique username โ
Uploading an avatar for user โ
Option to enable 2FA auth โ
Friend list and their status โ
User stats of wins, losses etc.. โ
Match history from games โ
User being able to create private channels โ
Be able to block and unblock other users โ
Able to invite other users to play a game โ
Accessing other users profile โ
Playing live games on the site โ
Matchmaking system โ
Faithful to the original pong game โ
Custom options for the game โ
The game must be responsive โ
16 Major module
11 Minor module
- Web
- Major module: Use a framework as backend โ
- Minor module: Use a front-end framework or toolkit โ โ
- Minor module: Use a database for the backend โ
- Major module: Store the score of a tournament in the Blockchain โ
- User Management
- Major module: Standard user management, authentication, users across tournaments โ
- Major module: Implementing a remote authentication โ
- Gameplay and User Experience
- Major module: Remote players โ
- Major module: Multiplayer (more than 2) โ
- Major module: Add Another Game with User History and Matchmaking โ
- Minor module: Game customization options โ
- Major module: Live chat โ
- AI-Algo
- Major module: Introduce an AI opponent โ
- Minor module: User and game stats dashboard โ
- Cybersecurity
- Major module: Implement WAF/ModSecurity with Hardened Configuration and HashiCorp Vault for Secrets Management โ
- Minor module: GDPR Compliance Options with User Anonymization, Local Data Management, and Account Deletion โ
- Major module: Implement Two-Factor Authentication (2FA) and JWT โ
- Devops
- Major module: Infrastructure Setup for Log Management โ
- Minor module: Monitoring system โ
- Major module: Designing the Backend as Microservices โ
- Graphics
- Major module: Use advanced 3D techniques โ
- Accessibility
- Minor module: Support more devices โ โ
- Minor module: Expanding browser compatibility โ
- Minor module: Multiple language support โ
- Minor module: Add accessibility for visually impaired users โ
- Minor module: Server-side rendering (SSR) integration โ
- Object Oriented
- Major module: Replacing Basic Pong with Server-Side Pong and Implementing an API โ
- Major module: Enabling Pong Gameplay via CLI against Web Users with API Integration โ