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 β