Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page is designed to give a broad overview of the currently done, work in progress and planned microservices. When considering (starting) working on one of these microservices, use the discussion link provided to get more information about a microservice and voice your opinion.

Microservices

Color code:SuggestedAcceptedIn ProgressDoneRejectedOutdated


Functionalities:Functionalities:FOOD pipeWould allow observers to register and push and receive notifications. the and stuff that happens during statutory events (agorae, epms): Agenda, Proposals and voting on proposals, members, etc. - Not parts of events moduleAntenna Microservice
Microservice nameCodeResponsibleDiscussAPIDescription
Micro service example (and node version)EXAMPLE
Confluence - Development

An example module.

Responsibilities and functionalities:

  • Make the development of a new micro service easier.
    • Core registration example
    • Frontend display example
    • Retrieve core data example
Core backendCOREFlaviuDerk, NicoConfluenceAPIResponsible for oAuth login with AP, user management etc
Should also be able to enable / disable other modules
Core frontendCOREFlaviuConfluenceResponsible for ALL frontend related stuff (should be tied with CB aka should be rendered by CB for security purposes and easier management). Other modules' frontend will be rendered by this one using templates and cross site requestsEvents

The core module providing the very basics required for all other modules.

Responsibilities and functionalities:

  • General
      • Providing Single Sign-On (SSO) for all (new and existing) AEGEE online services using oAuth
  • General frontend
    • Render general frontend
    • Will eventually be moved away from core - 
      Jira Legacy
      serverJIRA (oms-project.atlassian.net)
      columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
      serverIdedf3f91b-210c-3cfc-933c-f8d8084c5f2c
      keyCORE-109
  • Member management
    • Differentiate between member type: member, suspended, applicant
      • Offer an (member)application method
    • List, add, edit, suspend and group members
    • List, add, edit and delete groups (bodies)
    • Define permission roles
    • Assign roles to members and groups
Core-ElixirCORENico
API

A rewrite of the php core in elixir by Nico. Designed as a drop-in replacement for the core because core-development was stalled a bit due to personal reasons. 

Responsibilities and functionalities

  • Managing permissions and assigning them to members based on circle memberships and request context.
  • Grouping members by bodies and circles

Read more

Loginservice
Nico
API

Login and signup-functionality, separated from the core because Nico used it for another project.

Responsibilities and functionalities:

  • Providing authenticated users with jwt tokens for authentication in the rest of the system
  • Managing the sign-up workflow
Events (and frontend)EVENTSNico, SergeyConfluenceAPI

All event-related stuff. Creating, modifying, displaying and deleting events, approving events, managing events' organizers

Responsibilities and functionalities:

Managing events

  • Managing lifecycles and events workflow
  • Managing organizers
Functionalities:
    • Creating, listing, updating and deleting events
  • Managing lifecycles and events workflow
    • Creating, listing, updating and deleting lifecycles
    • Events lifecycle workflow (assigning a default event status, changing the event status)
  • Managing organizers
    • Adding and removing organizing persons and antennae
Applications (and frontend)
NicoJIRA - Issue

Everything related to the events' applications for the generic events (not statutory and not SU). Applying for the events, managing applications, approving participants.

Responsibilities and functionalities:

  • Managing the generic application process
    • Events application process
    • Participation listing
    • Participants selection by the organizers
    • Participants' evaluation for the event
    • Application comments by the organizers
Alastair
NicoConfluence

Food planning module - A private project from Nico

Service registryREGISTRYNicoJIRAAPI

Helps with service discovery based on categories or servicenames and provides an access token registry.

Responsibilities and functionalities:

  • Provide a JSON interface to the current service setup
    • Get services by name or category
  • Get services by name or category
  • Register auth token for internal communication

      Functionalities:

        • Register and verify auth tokens
    TraefikTRAEFIKNicoConfluence

    Open-source reverse proxy for load balancing and health checking

    • Reverse proxy - Correctly route requests to the microservice that it is directed to
    • Health checks - Internal monitoring of the connected microservices and admin notification in case of connection problems.
    LoggingLOG


    Logging microservice for the entire system
    AlastairFOODNicoConfluence

    Food planning module - A private project from Nico

    The Central Frontend
    NicoConfluence
    Joining the frontend pages of all services into one and serving it
    LDAP support

    JIRA - Issue

    Notifications - N-PIPEJIRA - IssuecastNOTIFYNicoConfluenceAPIReceives notification requests from services and casts them to notification providers
    Notifications - onscreenNOTIFYNico
    APIStores onscreen notifications which the user can fetch with a simple api call whenever he wants, no push feature
    Notifications - emailN-EMAILEmailer: Most likely will not write something ourselves, should use something existing. Flaviu mainly used NOTIFY


    Probably just a wrapper around an existing service like sendgrid


    Notifications - pushN-PUSHNOTIFY


    Push Notifications

    Cron Module

    JIRA - issue
    Regularily reoccuring tasks
    Statutory microserviceSTATUTORYSergey
    not there yet
    • Statutory events management
    • Application procedure for
    • statutory events
    • Voting for statutory events
    • Proposals
    • Motions
    • Candidatures
    • Plenary attendance
    Voting



    Candidatures, Evaluation (like impact measurement for events), also Recursion (-;
    Local management tools for antennae like members-list, working groups, local comitees, etc. Might just be another frontend to the core, low priorityReporting



    Generate anonymous reports with user and member statistics.
    Survey

    Requirements
    Add survey/questionnaire support, integrating it within OMS
    Finance



    Fee management. Event budgeting. Parts of this are inside the core module at the moment, will be moved out of oms-core for this.
    Storage



    A possibility to backup data to external systems easily.
    Travel



    for example: AEGEE-couchsurfing
    Gamification



    E.g. create badges like "Visited 5 events" or "Attended 3 Agorae in a row"
    Comments



    Make commenting everything possible. Reuse of disqus might be the way to do it.
    SU Webfrontend



    Summer University Website: Will be a little different from the usual events frontend, maintained and developed by SUCT.


    Roadmap

    See the Project Plan for this.