Giter VIP home page Giter VIP logo

it-depends's Introduction

Hey-Blue

This repository will contain the artefacts produced by the "It Depends" team for the Autumn 2022 session of O'Reilly Architecture Katas. The project this season is to create a proposed architecture for "Hey Blue!", a system to facilitate moments of meaningful connection between police officers and members of their community.

Table of Contents

About ItDepends

We are the minds of software engineers and architects who have come together across three continents to work collaberatively and produce this proposed architecture.

  • Shari Lines
  • Miguel Gasca
  • Kavya Shivakumar
  • Prashant Jasani
  • Susmitha Kunisetty
  • Uma Kapoor

Goal

To design a feasible mobile/web solution which helps community by enabling citizens and police officers to connect and earn points which can be redeemed in charities or retail store.

The directory linked to above contains all artefacts related to functional requirements and architectural characteristics, as well as user story diagrams derived from the 4 processes documented in the original requirements.

  • Evolutionary Considerations takes note of potential directions of evolution of Hey Blue! regarding Usability and scope of positive interactions.
  • Volummetric Analysis has some napkin calculations feeding into throughput, elasticity and scale requirements of Hey Blue!

An abstract diagram illustrating the overall vision of Hey Blue! is

Vision

Domain Analysis Map

This is a domain model that fed further into our analysis. We have used different colors to denote areas of closer conceptual relation. Note: The shapes don't necessarily imply services/actions and the lines don't necessarily imply dependencies/calls/messages/events. This is meant to be a starting point for decomposition.

  • Interactions is larger, red and in the middle because it is the core of the system.
  • All Civilian/Officer core domain areas are orange.
  • All retail business areas are green.
  • All charity areas are blue.
  • All data/reporting/analytics is purple.
  • Monetary domain concepts in yellow.(i.e. how does HeyBlue make money and how do they apportion part of this to go back to community building).
  • Grey is 3rd party and white is cross-cutting.

Domain Analysis Map

We have categorised our decision records in to Functional ones and cross cutting ones

Architectural Characteristics

We have identified core architectural characteristics and captured it into this worksheet based on Architecture Characteristics Worksheet

ArchitecturalCharacteristics

Architectural Styles

We built a worksheet based off of the one found at Developer to Architect Styles Worksheet. We considered all styles listed there except for Layered (it was least well suited from the list and has poor domain to architecture isomorphism). We added to the list Serverless and also a hybrid Event-Based-Serverless. The results of our analysis with a table constrained to our core characteristics is as below. The decision was made to use a hybrid Event-Based Serverless style. The detailed explanation of this decision is captured in 010 Architectural Styles

StyleToCharacteristicAnalysis

The proposed architecture is captured in a system landscape diagram. We have logically seperated our analysis of the architecture into 4 systems, and each is addressed in turn in it's own directory.

  • Interaction Manager : Responsible to manage Civilian and Citizen registration and their potential interactions with each other by faciliting proximity detection, interfacing with social media and analytics.
  • Donation and Redemption : Responsible to manage and administer Business and charities' relations along with point system and redemptions.
  • Analytics and Reporting : Responsible for analytics and reporting and operational data management
  • Media Manager : Responsible for Social media management

Each of these systems analysis contains the following

  • Context Diagram
  • Container Diagram
  • Sequence Diagram/Data Model

Connecting the dots

A visual journey through understanding the breadth and depth of our proposed solution starts with the top level use case digram. Here we see our four primary actors and the four core scenarios. From there you may drill down to the images which are an expansion of each individual use case, these are in the Business Process Flow directory. Zooming back out a level the user story map provides a view that organizes the user journey into related user stories under activities. These distinct activities correlate 1:1 with the four systems in our System Landscape diagram. Each of those four systems has a dedicated directory under solution where we drill down from System Context to Container views. We also include sequence diagrams for primary user and/or data flows and data models at this level.

Our perspective of mapping characteristics to Software system Contexts

Using the template by Mark Richards that is available in Architectural Characteristics Worksheet we have identified how the characters can be mapped to our software system Contexts and here is the representation. (0 to 4 stars being the most)

image

We have also maintained templates for

  • C4,
  • Draw.io Stencils
  • MADR3.0 template

it-depends's People

Contributors

kavyashivakumar avatar goldelox avatar kapooruma avatar mgasca avatar susmi-k avatar lionking421 avatar susmithakunisetty avatar discof00 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.