Skip to content

Latest commit

 

History

History
75 lines (51 loc) · 2.41 KB

README.md

File metadata and controls

75 lines (51 loc) · 2.41 KB

System Name

ctf-sandbox

Contributors

Licence

MIT

Background Context

This is a TDD Sandbox to shake out the kinks in an upcoming open source project that will modernize CTF competition softwares.

The main goals of this project are:

  • Get my DDD Bounded Contexts framed correctly
  • Implement those bounded contextes in a hexagonal architecture
  • Adapt those contexts with REST adapters, preferably with hypermedia
  • Develop all this code in TDD, following Valentina Jemuovic's suggested way. Her site is Optivem journal. You can also follow her on LinkedIn

System use cases

  • As a competitor, I want to sign up for future CTF competitions
  • As a competitor, I want to create a team of competitors
  • As a team leader, I want to assign competitors to my team
  • As a team leader, I want to particate in a CTF competition
  • As a challenge creator, I want to create CTF challenges
  • As a CTF organizer, I want to create upcoming CTF competitions
  • As a CTF organizer, I want to assign challenges to an upcoming CTF competition

FURTHER USE CASES WILL PROBABLY BE ADDED IN THE OPEN SOURCE PROJECT

External systems

System architecture style

Micro Frontends + Micro Services

Architecture diagrams

System context diagram

diagram

Container diagram

diagram

Tech stack

Programming language: C#

Frameworks: Blazor Web Assembly, ASP.Net Core

Database: Sqlite

Message Broker: Upcoming...

Repository Strategy

Multi-Repo

Branching Strategy

Feature Branching

Deployment Model

Microsoft Azure

Repositories

ctf-sandbox-frontend

Contains the main container application. It's responsiblity is to authenticate users, display modules and to redirect requests to the underlying modules.

ctf-sandbox-users-frontend

Contains the users front end module. It's responsiblity is to display all available functions for the users domain.

ctf-sandbox-users

Contains the users back end. It's responsiblity is to provide functions for the users domain.