-
Notifications
You must be signed in to change notification settings - Fork 0
1. System Overview
Ayush Goyal edited this page Aug 18, 2022
·
1 revision
To understand our services, you'll need to understand the following terminology:
- monorepo: a single repository that stores all of your code and assets for every project
- microservices: an architectural approach where software is composed of small, independent services that communicate over well-defined APIs
Essentially, this repo is a monorepo that holds all of our backend microservices together. These microservices are designed in a way to communicate with each other.
As explained in the motivation section, each service in our repo is hosted as a separate server.
Each of these servers are hosted as subdomain of api.hexlabs.org
. To see each services endpoints
and how to format the request, visit our docs site. Here is a list of
our current services, their URL, and description:
- auth (auth.api.hexlabs.org)
- handles user authentication through Google Identity Provider / Google Firebase
- allows frontend services to retrieve tokens and login/logout users
- files (files.api.hexlabs.org)
- handles uploading and managing files for user (like resume)
- allows admins to view and download files
- hexathons (hexathons.api.hexlabs.org)
- generic service to manage our events (hexathon covers hackathon, makeathon, etc.)
- manages the event name and whether it's active or not
- keeps track of participant interaction during an event (ie. when they visit a workshop, get food, attend a tech talk)
- handles checking in users to our events when they first arrive
- notifications (notifications.api.hexlabs.org)
- manages sending user notifications to platforms like email, sms, slack
- registration (registration.api.hexlabs.org)
- handles user registration and stores application information
- allows us to create new application branches and edit application questions
- users (users.api.hexlabs.org)
- handles user information like name, demographic, etc.
- handles companies and whether a user (like sponsor) is from a certain company
- handles team management and joining/leaving a team