Manages feature toggles for different services
// root of project
// Build the system (take a coffee...)
docker-compose build
// Run project
docker-compose up
Open browser on:
- Toggler Manager - React Page
- Toggler Manager - React Page with The Toggler Example
- Open Api Documentation of the Toggler API
Rest Requests:
- Open Api Usage of the Toggler API
- Use rest API on: localhost:5000/api/
- GET/POST/PUT/DELETE on /api/toggle
- GET/POST/PUT/DELETE on /api/service
- GET/POST/PUT/DELETE on /api/ToggleState
- Toggler API service keeps waiting till mssql container ready to accept connections. This waiting feature was implemented with wait-for-it. (https://github.com/vishnubob/wait-for-it)
- mssql and rabbitmq volumes, exist and are active by default in docker-compose.yml
- Used Bootstrap Theme
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
--
- 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)
.
├── 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
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
ToggleAPI
├───Context # Data Context
├───Controllers # Rest Controllers
├───Migrations
├───Models
│ └───Toggle # Domain
├───RabbitMQ # RabbitMQ Client
└───scripts