-
[x] Major module: Use a framework to build the backend.
- [x] In this major module, you are required to use a specific web framework for backend
development: Fastify with Node.js
-
[ ] Major module: Replace Basic Pong with Server-Side Pong and Implementing an
API.
- [ ] Develop server-side logic for the Pong game to handle gameplay, ball move-
ment, scoring, and player interactions.
- [ ] Create an API that exposes the necessary resources and endpoints to interact
with the Pong game, allowing partial usage of the game via the Command-Line
Interface (CLI) and web interface.
- [ ] Design and implement the API endpoints to support game initialization, player
controls, and game state updates.
- [ ] Ensure that the server-side Pong game is responsive, providing an engaging
and enjoyable gaming experience.
- [ ] Integrate the server-side Pong game with the web application, allowing users
to play the game directly on the website.
-
[ ] Major module: Remote players
- [ ] It should be possible for two players to play remotely. Each player is located on a
separated computer, accessing the same website and playing the same Pong game.
- Consider network issues, such as unexpected disconnections or lag.
You must offer the best user experience possible.
-
[ ] Major module: Store the score of a tournament in the Blockchain.
- [ ] Blockchain Integration: The primary goal of this module is to seamlessly in-
tegrate blockchain technology, specifically Avalache , into the Pong website.
This integration ensures the secure and immutable storage of tournament
scores, providing players with a transparent and tamper-proof record of their
gaming achievements.
- [ ] Solidity Smart Contracts: To interact with the blockchain, we will develop
colorboxtreasurebgSolidity smart contracts. These contracts will be responsi-
ble for recording, managing, and retrieving tournament scores.
- [ ] Testing Blockchain: As mentioned earlier, a testing blockchain will be used for
development and testing purposes. This ensures that all blockchain-related functionalities are thoroughly validated without any risks associated with a
live blockchain.
- [ ] Interoperability: This module may have dependencies on other modules, par-
ticularly the Backend Framework module. Integrating blockchain functionality
might require adjustments in the backend to accommodate interactions with
the blockchain.
-
[ ] Major module: Live Chat.
- [x] The user should be able to send direct messages to other users.
- [ ] The user should be able to block other users, preventing them from seeing any
further messages from the blocked account.
- [ ] The user should be able to invite other users to play a Pong game through the
chat interface.
- [ ] The tournament system should be able to notify users about the next game.
- [ ] The user should be able to access other players’ profiles through the chat
interface.
-
[ ] Major module: Implement Two-Factor Authentication (2FA) and JWT.
- [ ] Implement Two-Factor Authentication (2FA) as an additional layer of security
for user accounts, requiring users to provide a secondary verification method,
such as a one-time code, in addition to their password.
- [x] Utilize JSON Web Tokens (JWT) as a secure method for authentication and
authorization, ensuring that user sessions and access to resources are managed
securely.
- [ ] Provide a user-friendly setup process for enabling 2FA, with options for SMS
codes, authenticator apps, or email-based verification.
- [x] Ensure that JWT tokens are issued and validated securely to prevent unau-
thorized access to user accounts and sensitive data.
-
[x] Minor module: Use a framework or toolkit to build the front-end.
- [x] Your frontend development must use the Tailwind CSS in addition of the Typescript, and nothing else.
-
[x] Minor module: Use a database for the backend -and more.
- [x] The designated database for all DB instances in your project is SQLite This choice
ensure data consistency and compatibility across all project components and may
be a prerequisite for other modules, such as the backend Framework module.