Giter Site home page Giter Site logo

archkataspring2022's Introduction

ArchKataSpring2022

O'Reilly Spring 2022 Architectural Kata design documents.

Team: Archikers

  • Brian Liu
  • Keshwan Ramlu
  • David Robinson
  • Prafull Surana
  • Mikhael Vasilkovsky

Overview

This repository contains all documentation related to the architectural design of the Spotlight application for the Diversity Cyber Council. For information regarding the contents and organization of this documentation please refer to the FAQ at the end of this document.

The requirements document provides the intial requirements as given by the Diversity Cyber Council.

NOTE: This repository is best consumed within the GitHub UI.

Exexutive Summary

"The Spotlight App Project is a sustained effort to amass a coalition of nonprofits in order to address specific needs within the communities we serve by leveraging a centralized platform as the base of operations to collaborate and make a collective impact."

  • Archikers proposes to build and deliver flexible, maintainable, scalable and extensible platform to
    • Provide centralized avenue for Non-profits to deliver services
    • Promote collaboration among Non-profits as well as between Non-profits & candidates
    • Increase visibility and accessibility of services to aspiring candidates
    • Provide capability to raise any issues related to service and getting the resolution
  • Proposed solution is going to be secure, highly available and cost-effective meeting Non-profit current and future operational need

Requirement Understanding

High level Use cases

High Level Use Cases

Business and Architecture Principles

The following principles will drive the Spotlight Platform architecture and build.

Business Principle

  • Build matching decision based on user preference, Not demand-supply - To recommend matching, System will higher weighatge to user preference and Non-profit service offering attributes than ratinga & demand-supply
  • Collaboration is the key -
    System will promote higher level of collaboration among system users (Non-Profits, Candidates and Administrators)
  • Turn Data into actionable Insight - Every data attributes, use action, and interaction will be captured by system and will be used to generate insight. Which will promote better pridiction, matching and visibility
  • Ease of use - System will be easy to use by different persona's on different devices

Architecture Principle

  • 12 Factor App principle - System will be built using 12 factor app principle
  • Responsive Web Design (RWD) - User interface will be built using RWD principle allowing it to be render in different devices like desktop, tablet, mobile
  • Design for flexibility and Self Service - Platform will be flexible to extend and enhance the functionality. It will be developed such a way that user can use it with minimal support and collaborate among themselves to resolve any queries. This will eventually have less operational cost to run the platform
  • Enterprise & Data Security - All technologies, solutions, tools, designs, applications, and methods used within the architecture must adhere to all security and privacy policies, procedures, guidelines, and standards. This will ensure that there is no security breaches and no financial liability to the company. Data will be accessible to authorized user
  • Cloud first approach - Platform will be cloud native and most of the components will be built and deployed on serverless platform. This will help to reduce the capital cost as well as provide inherent high availability, scalability, and extensibility.

Conceptual Architecture

Conceptual Architecture

Solution Architecture

Solution Architecture

Technology Stack/Choices

  • Front End - Flutter 3
  • Rich text editor (for Non-Profit to manage their content) - FlutterQuill
  • Business and Service logic - Firebase
  • Programming Language - Business logic - Java & NodeJs, Data logic and flow - Python,
  • Data Store - GraphDB - Neo4j, No SQL DB - Firebase Realtime DB, Media content store - CloudStorage on GCP
  • Analytics & Reporting - GCP Looker
  • Collaboration logic - Custom build Or integrate tool like Slack (decision to be taken post understanding requirement in detail)
  • Build and Deployment Platform - Firebase, Google Cloud (GCP)

Architecture Decisions (ADRs)

All ADRs may be referenced at ADRs.

DevSecOps

Security concerns are addressed through the following tools:

  1. Real time access protection is provided through Firebase App Check
  2. Secrets are stored in Google's Cloud Secret Manager

Non-Functional Requirement mapping

Assumptions and constraints

FAQ

Q: I want to contribute to this documentation. What tools are reuired to create documents?

A: The short answer is that you will need some knowledge of markdown for text and diagram.net for diagrams. Documentation guidleines are found in the DocumentationGuidelines directory in this repo.

archkataspring2022's People

Contributors

brianpyl avatar keshwanramlu avatar michaelvas avatar pcdwr avatar prafullsurana avatar spicle avatar

Watchers

 avatar  avatar  avatar  avatar  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.