Skip to content

JoseRodrigues443/toggler-service-system

Folders and files

NameName
Last commit message
Last commit date
Sep 11, 2019
Sep 20, 2019
Sep 19, 2019
Sep 13, 2019
Sep 20, 2019
Sep 15, 2019
Sep 11, 2019
Sep 20, 2019
Sep 15, 2019
Sep 20, 2019

Repository files navigation

Toggler Service System

Manages feature toggles for different services

Installation


// root of project

// Build the system (take a coffee...) 
docker-compose build
// Run project
docker-compose up

Open browser on:

Rest Requests:

Usage

OpenAPI - UI

Open API Page

UI API (React)

  • Base Page
  • Toggle
    • Toggle List
    • Toggle Create
    • Toggle Edit
  • Services
    • Service List
    • Service Create
    • Service Edit
    • Service - Toggle Relation Manage
      • Add Toggle Relation to a Given Service
      • Edit toggle value for that service
        • Edit toggle value for that service
  • Example Page
    • Edit toggle value for that service

License

GPL3

Notes

Bootstrap Note: Bootstrap was used because is a well known UI library, easy to understand how the things were made.

No JQuery is used, the react-bootstrap removes the JQuery dependency


--

Improvements for the future:

  • React Add Redux for a generic state management
  • Log System
  • C# SDK for api
    • (To better show the feature only the react one was generated/created)
  • Better Test Battery
    • Add Swagger generated ones for integration
    • Mockup RabbitMQ and database
  • Add UML documentation
  • Add multiple service workers on docker-compose
    • Multiple RabbitMQ instance + Redis Cluster (to centralize)

Project Structure

System (docker compose)

   .
    ├── docker-compose.yml                  # Docker compose configurations       
    ├── LICENSE
    ├── mssql_volume                        # Container MSSQL Instance
    |  ├── data                             # Persisted Data
    |  ├── log
    |  └── secrets
    ├── rabbitmq_volume                     # RabbitMQ Volumn of Container
    ├── README.md
    ├── services
    |  ├── TogglerApi                       # Toggle manage REST API
    |  └── utils
    ├── tools
    |  └── scripts
    └── ui  
        └── toggler-manager                 # React UI

UI

   src 
    ├───components                  # Components
    │   ├───navbar
    │   ├───serviceComponents
    │   │   ├───createEdit
    │   │   └───list
    │   └───toggleComponents
    │       ├───createEdit
    │       ├───list
    │       └───toggle
    │           └───accessLayer
    ├───pages                       # Views
    │   ├───exampleView
    │   ├───home
    │   ├───servicesViews
    │   │   ├───create
    │   │   ├───edit
    │   │   ├───list
    │   │   ├───relations
    │   │   └───view
    │   └───toggleViews
    │       ├───toggleCreateView
    │       ├───toggleEditView
    │       ├───toggleListView
    │       └───toggleView
    ├───sdk                         # Clients
    │   └───togglerApiClient                    # TogglerAPI OpenAPI typescript client
    └───state                       # Redux

API

ToggleAPI
    ├───Context             # Data Context
    ├───Controllers         # Rest Controllers
    ├───Migrations
    ├───Models
    │   └───Toggle          # Domain
    ├───RabbitMQ            # RabbitMQ Client
    └───scripts

Domain

Domain Diagram

Deployment - Components

Domain Diagram

About

Toggle Patter API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published