← Back to home

Gamotion: A Comprehensive Overview

Gamotion is a full-stack gaming community platform designed to connect gamers through social features, real-time chat, and location-based discovery. The system is built with a unified node.js backend that serves both a react native mobile application and a react web application.

Here is the end-to-end breakdown of the project architecture and features:

1. Backend Architecture (/backend)

The backend is a robust rest API augmented with real-time websocket capabilities.

  • Tech stack: Node.js, express, mongodb (mongoose).
  • Security & middleware: Incorporates helmet for security headers, express-rate-limit to prevent abuse, and cors configured for local development ports.
  • Authentication: Uses jwt (json web tokens) with bcryptjs for secure password hashing.
  • Media storage: Integrated with cloudinary (via multer-storage-cloudinary) for handling user uploads like avatars and post media.
  • Real-time services (socket.io):
    • Chatsocket: handles real-time messaging between users.
    • Postsocket: manages live updates for social feed posts (likes, comments).
    • Notificationservice: emits real-time in-app notifications.
  • Core API routes: Authentication (/API/auth), social graph (/API/follow, /API/friends), content (/API/posts, /API/comments), user discovery (/API/location, /API/users), and analytics (/API/analytics).

2. Mobile App (/ Root Folder)

A production-ready iOS and Android app built for gamers.

  • Tech stack: React native (cli, v0.81), typescript.
  • Navigation: Uses @react-navigation/native with custom conditional rendering logic for authentication flows (e.g., splash screen → auth → main app).
  • State management: Relies heavily on react context API (usercontext, followcontext, chatcontext, notificationcontext).
  • Key dependencies:
    • React-native-firebase/app & messaging: for push notifications.
    • @react-native-community/geolocation: for location-based player matching.
    • React-native-image-picker & react-native-compressor: for optimizing and uploading images/media.
    • Socket.io-client: powers the live chat and feed interactions.
  • Screens: Includes a rich set of views like profilesetup, followers, chat, notificationcenter, createpost, and locationscreen.

3. Web Application (/web)

A modern, responsive web port of the gamotion experience.

  • Tech stack: React 19, typescript, vite (build tool).
  • Routing: Uses react-router-dom for url-based navigation.
  • Styling: Uses pure css (app.css, index.css) with icons provided by lucide-react.
  • Integration: Seamlessly hooks into the same backend API using axios and establishes websocket connections via socket.io-client just like the mobile app.

4. Core End-to-end Features

  • User identity & profiles: Secure sign up/login, profile customization (avatars, bios), and a preference system.
  • Social graph: A robust friend and follower system (sending requests, tracking followers).
  • Content feed: Users can create posts (with text/media), comment, and interact with the broader community in real-time.
  • Live direct messaging: One-on-one real-time chat between friends.
  • Location-based discovery: A feature allowing users to find and connect with other gamers geographically near them.
  • Engagement: Both in-app toasts (via socket notificationservice) and os-level push notifications (via firebase).