/Software_Architecture_Design_2022

Repository of the project carried out for the Software Architecture Design exam, for the Master's Degree course in Computer Engineering at the Federico II University of Naples.

Primary LanguageJavaScript

Software Architecture Design Project

Repository of the project carried out for the Software Architecture Design exam, for the Master's Degree course in Computer Engineering at the Federico II University of Naples.

Contributors

Project Goal 🚩

The goal is to create an open source instant messaging application based on the security and privacy of the users who are using it. The application allows users to subscribe to the service, to send and receive messages from other subscribed users; to guarantee delivery of the message sent even if the receiver is offline; to guarantee that registration and communication take place in total security, through encrypted management of access keys.

Skills acquired ✅

  • Writing a Design Document (DD)
  • Working with Agile methods and techniques
  • Developing a Smartphone App with React Native framework
  • Implementing a microservice architecture via API REST
  • Analysing a software system according to different architectural views
  • Performing Component and Functional Testing

Tech Stack âš™

Backend
Language JavaScript (NodeJS)
Framework Express
Testing Jest
Database MySQL
SQLite
Frontend
Language JavaScript
JS Framework ReactNative
Tools
Packet Manager Yarn
Bundler Expo
UML Design VisualParadigm

Documentation 📄

  • Documents produced at the start of the project (e.g. Vision document and description of Objectives, Stakeholders, General and Quality Requirements, Constraints, etc....), glossary, cost estimates and Draft Architecture (from context diagram). Chapter 1

  • Description and justification of the type of development process adopted (UP, Scrum, eXtreme Programming) and the organisational and project planning choices made, with an indication of the tools and any agile techniques/practices used. Chapter 2

  • Requirements Specification and Requirements Analysis documents, including textual analysis, mockup and design concepts, use case model, use case diagram, system sequence diagrams, system domain model, draft architectural diagram, activity diagrams, communication diagrams and state machine diagrams. Chapter 3

  • Project documentation relating to the Software Architecture, the design choices made and the requirements design implemented, including C&C view, design sequence diagrams, class diagrams and deployment diagram. Chapter 4

  • Documentation of the implementation of the software developed and instructions for the configuration, installation and execution of the software produced, including descriptions of the files created and design patterns implemented, detailed sequence diagrams, E-R models. Chapter 5

  • Description of tests performed, including unit and functional tests. Chapter 6

Video Demo 📹

YouTube Link