Skip to content

Software Achitecture

1 INTRODUCTION

1.1 Purpose and coverage

The purpose of this document is to provide a high-level overview of the system's design and structure. It includes its components, interactions and interfaces. It serves as a reference for developers, stakeholders and other interested parties to understand how the system is organized. It also presents its key features and capabilities and how it meets the business and technical requirements. The document may also outline key decisions, trade-offs and considerations that guided the design and development process, as well as any relevant constraints or assumptions.

1.2 Product and environment

The Skill Collector web application collects end users answers about meaningful work life skills based on SFIA Standards. It can accessed through any modern desktop web browser or operating system.

1.3 Definitions, notations and abbreviations

  • Backend - The stuff that happens "behind the scenes" ie. database calls and such.
  • CSC - "Center for Scientific Computing" – TIETEEN TIETOTEKNIIKAN KESKUS OY
  • CLI - Command Line Interface.
  • Doorbell.io - The feedback system used.
  • Docker - You can put a program inside a Docker container, and it will have everything it needs to work, like all the tools and pieces it needs to run. And the best part is that you can take that container and put it on any computer you want, and the program will work exactly the same as it did on your computer.
  • Express - Handles routes and HTTP traffic stuff.
  • Frontend - The stuff you see on the application
  • GDPR - The General Data Protection Regulation (EU stuff)
  • JavaScript/TypeScript - Programming language used in most websites.
  • Kali Linux - Linux operating system for security testing.
  • Log - List of things that have happened.
  • Narsu - Marko Rintamäki
  • Node.js - Node.js is like a superhero for computers. It's a special program that lets other programs run more quickly and easily.
  • Plausible.io - Service Analytics tool.
  • PostgreSQL - The database system used.
  • Pouta - Name of the Virtual Machine service at CSC
  • Python - A programming language.
  • SFIA - ["sofia" - "wisdom"] Skills Framework for the Information Age by SFIA Foundation
  • TUI - Terminal User Interface.
  • Ubuntu - Operating system.
  • Vue.js - JavaScript/TypeScript framework for the frontend.

1.4 References

1.5 Overview of the document

This document is an overview of the software architecture of the Skill Collector, and it provides a blueprint for how the software system is organized, designed and implemented. This document also covers various aspects of the software architecture, including its purpose, coverage, product and environment, definitions, notations, abbreviations and references.

The "System overview"- section describes the application area, integration of the system into its environment, hardware and software environments, key boundary conditions for implementation, agreements and standards. This section also provides a high-level view of the system, which is essential for understanding its architecture.

The "Description of the architecture"- section covers the design principles, software architecture, modules, processes, database architecture, as well as error and exception procedures.

The "Module descriptions"- section provides a detailed description of each module in the system. Each module has its section with an overview, interface in general, interface functions, implementing the module and error handling.

The "Finished components and special technical solutions"- section covers the components that have been completed and any technical solutions that have been implemented. This section provides an overview of the system's current state.

The "Solved solutions"- section covers the solutions that have been implemented to address any issues or problems that arose during the development process.

The "Further development ideas"- section provides some suggestions for future development. It also provides a roadmap for the system's future development.

The "Items still open"- section covers any issues or problems that still need to be addressed. This shouldn't be here when the product is finished, instead this section should be updated during development.

Finally, the "Future additions"- section covers any additional features that may be added to the system in the future. This section provides an overview of the system's potential future growth.

2. SYSTEM OVERVIEW

2.1 Description of the application area

The Skill Collector link is sent to end users via email and they open the questionnaire in their own environments.

2.2 The integration of the system into its environment

This is an standalone application. Integrations probably in the future.

2.3 Hardware environment

  • Service provider for the initial hosting environment: CSC high performance computing cloud hosting service.
  • Server specifications: 4 VCPU, 7.8GB RAM, DISK 80GB

2.4 Software Environment

2.5 Key boundary conditions for implementation

2.6 Agreements and Standards

3. DESCRIPTION OF THE ARCHITECTURE

Deployment Diagram

uml diagram

3.1 Design principles

3.2 Software architecture, modules and processes

3.3 Database Architecture

  • MD5 hashes
  • SKILL
  • Abbreviation
  • Description

3.4 Error and Exception Procedures

4. MODULE / CATEGORY / PROCESS DESCRIPTIONS

4.1 Module X (each module has its own section 4.i)

4.1.1 Overview

4.1.2 Interface in general

4.1.3 Interface Functions

uml diagram

4.1.4 Implementing the module

4.1.5 Error handling

5. FINISHED COMPONENTS AND SPECIAL TECHNICAL SOLUTIONS

Feature Priority
FEA01-Backup-System P2
FEA02-Service-Analytics P1
FEA03-Customer-Feedback-system P1
FEA04-GDPR-Info P1
FEA05-Log-Management-System P2
FEA06-Service-Containerized P2
FEA07-Service-Regression-Test-Automatized P1
FEA08-Service-Production-Environment P1
FEA09-Service-Testing-Environmemt P1
FEA10-Secured Connection P1
FEA11-Service-Domain-Name P3
FEA20-skill-info-view P1
FEA21-skill-selection-view P1
FEA22-data-csv-exporter P2
FEA23-skill data-importer P2
FEA24-user-management P2
FEA26-User-Authorization P2
FEA27-Admin-Panel P2
FEA28-Skill-Search P3
FEA29-Softskill-selection-view P3
FEA30-Progress-Bar P3

FEA04-GDPR-Info, FEA10-Secured Connection, FEA11-Service-Domain-Name, FEA20-skill-info-view, FEA21-skill-selection-view, FEA28-Skill-Search, FEA29-Softskill-selection-view, FEA30-Progress-Bar, FEA26-User-Authorization

FEA07-Service-Regression-Test-Automatized

FEA27-Admin-Panel, FEA24-user-management

6. SOLVED SOLUTIONS

7. FURTHER DEVELOPMENT IDEAS

7. IDEAS FOR FURTHER DEVELOPMENT

  • User can switch language
  • Light mode / dark mode

8. ITEMS STILL OPEN

FUTURE ADDITIONS

Software architecture thought like Zachman

  • Framework and 4+1 View Model
  • Reference Model for Open Distributed Processing (RM-ODP)
  1. Enterprise viewpoint --> Business Case
  2. Information viewpoint -- >
  3. Computational viewpoint
  4. Engineering viewpoint
  5. Technology viewpoint
  • Link Jari Suni here :)

Original Source http://www.cs.tut.fi/ohj/dokumenttipohjat/pohjat/suunnittelu/hytt_drsuunnittelu.doc

Thank you for original authors!