super-serve

module
v0.0.0-...-c1868ec Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2024 License: MIT

README

Super-Serve

Backend services for a lite social-presence system for online-games using Go.

Overview

This microservice is designed to provide a robust, scalable backend system for online-games that have the social experience as one of the core aspects of itself. It is implemented using:

  • Go, as the main programming language.
    • Echo : HTTP-Web Request Handling Framework
    • gRPC : gRPC Communication Framework
    • MongoDriver : MongoDB driver for Go
    • Redigo/Redis : Redis driver for Go
    • Google/UUID : UUID generation for Player creation
    • Teris-IO/ShortID : Short unique-ID generation for Party codes
    • Logrus : Logging solution
  • MongoDB, as the primary data store for existing player data.
  • Redis, as the fast, in-memory cache solution to provide seamless updates.
  • Docker, as the packaging and containerization platform for the application.
  • Kubernetes/MiniKube, as the orchestration provider for the packaged containers.

Features

  • Player features

    • Player registration.
    • Player login.
    • Fetch friends info, along with each of their current statuses.
  • Friend features

    • Add a player as a friend using their player-id.
    • Accept a pending friend request in your inbox from some other player.
    • Reject a friend request in your inbox.
    • Remove existing friends from your friend list.
  • Live Features

    • Status features, get live notifications on when your friend (f) / party-member (pm) statuses change, like:
      • ONLINE (f).
      • AWAY (f).
      • IN-PARTY (f).
      • OFFLINE (f).
      • INVITES (f).
      • ACCEPT (pm).
      • REJECT (pm).
      • JOINED (pm).
      • LEAVE (pm).
      • KICKED (pm).
    • Party features, get access to features that evolve your gaming experience with your group, like:
      • Party creation.
      • Sending party invites.
      • Receiving party invites.
      • Accepting party invites.
      • Rejecting party invites.
      • Leaving a joined party.
      • Kicking out rogue agents (players), only if you are the leader.

Getting Started

Follow these instructions to get the project up and running on your local machine for development and testing purposes.

Prerequisites
  • Primary Prerequisites (Necessary)

    • Docker
    • Docker-Compose
    • GNU Make
  • Other Prerequisites

    • MiniKube, with Kubectl (for local K8s emulation) or just use *-deployment.yaml files from the deployments folder in your K8s cluster.
Installation

Clone the repository

Usage

Just use the make command along with the options below:

  • run, for running it with Docker on local.
  • run-and-deploy, for doing the setup using MiniKube, if installed in your local machine.

API Documentation

Use the below API collections from POSTMAN to interact with the running server :

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL