Skip to content

theam/livequestions-booster

Repository files navigation

Live Questions Booster BE

256 png

This is the backend implementation of the Live Questions iOS app, which showcases the power and simplicity of using the Booster framework as a backend solution.

This project showcases

  • Event driven design: The server is designed to process and respond to events rather than traditional requests, making it highly efficient as it can process multiple events concurrently and asynchronously.
  • Event sourcing and CQRS: Stores all changes to the state of the backend as a sequence of events, like an event log, rather than in a traditional database, and use CQRS (Command and Query Responsibility Segregation) to separate the responsibilities of handling commands (inputs) and read models (outputs).
  • Domain-driven design: Focus on defining the system in terms that are understandable by all stakeholders and breaking it down into small, cohesive components that represent different business entities and their relationships.
  • GraphQL API: Booster generates a fully-working GraphQL API for your backend clients to use, without you worrying about writing resolvers or maintaining your GraphQL schema.
  • Scalability and reliability: Booster offers scalability and reliability for high volume request and event handling, ensuring data consistency and availability through the use of cloud resources such as Lambdas, API Gateway, and DynamoDB.

Booster Architecture

Booster Architecture

Live Questions Booster Architecture

Quick Start

Here are some steps you can follow to download and run the application locally.

$ git clone https://github.com/theam/livequestions-booster.git
$ cd livequestions-booster
$ npm install
$ boost start -e local 

For testing in local or development environments, we suggest using the Altair GraphQL client. Simply enter the endpoint URL for your application, which is located at http://localhost:3000/graphql. It will also load the documentation for your API schema!

Note that if you are testing some Commands locally and don’t want to deal with the authentication part (we explain authentication later in the article), you can just keep the Command public and authorize it for ‘all’:

@Command({
authorize: 'all'
})
export class CreateTopic {…}

Keep in mind that subscriptions are currently not supported in a local environment. For that, you need to deploy the application to AWS, as explained in the Booster documentation.

iOS App Repository

Live Questions iOS App

Articles

Scalable Low-Code backends with Booster

From iOS Dev to full-stack in no time with Booster 🚀

Cloud File Management with Booster

License

Live Questions is released under the MIT License.

About

Booster backend for the LiveQuestions app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published