-
Notifications
You must be signed in to change notification settings - Fork 0
Architecture
App Type: Mobile app
Description:
This will be a React Native app developed with Expo. It uses Firebase for real-time databases and cloud data as well as for authentication for user accounts, notifications, and messaging. We will use Github Actions for the deployment pipeline.
a. Backend & API's b. Databases
Database: MongoDB Atlas MongoDB Atlas is our cloud-hosted database solution that stores collections for users, matches, messages, and preferences. Its flexibility allows us to store dynamic user data such as interests, favorite games, and experience levels without strict schema constraints. The database will interact with the backend via Mongoose models for easy querying and validation.
Example Collections:
- Users: profile info, trust rating, game preferences
- Matches: user IDs, compatibility score, match status
- Messages: sender, receiver, timestamp, and message body
Authentication: Firebase Authentication Firebase Authentication will handle secure user signups and logins via email and password, or through social logins (optional). It ensures user identity is verified before allowing access to sensitive features like messaging or profile editing.
Hosting: Firebase Hosting Firebase Hosting will serve both our static assets and backend endpoints, simplifying deployment and ensuring fast global performance through built-in CDN support.
Library: Socket.IO Socket.IO will be used to implement live chat between matched users. It enables bi-directional communication between the app and the server, allowing instant message updates without reloading data or polling for new messages.
Protocol: WebSockets WebSockets maintain a persistent connection for low-latency updates. When one user sends a message, the recipient’s chat instantly updates, improving user experience during live gaming sessions or coordination.