Skip to content

Architecture

William Amos edited this page Oct 19, 2022 · 8 revisions

Deliverables

  1. Libraries and APIs used as well as package managers are listed in each respected application's readme.
    https://github.com/SCCapstone/Neptune/blob/main/Server/Readme.md
    https://github.com/SCCapstone/Neptune/blob/main/Client/Readme.md
    Client dependency: https://github.com/patrickfav/hkdf, version 1.1 implementation group: 'at.favre.lib', name: 'hkdf', version: '1.1.0'
    Client uses gradle to manage packages and build.
    Server will use npm as our package manager for modules. To "package" our Node.JS server application into a "one-click" executable we will use PKG: https://www.npmjs.com/package/pkg
    Packages:
    express: Web application framework, the "web server" portion of server that receives data from the client, hosts the REST API.
    socket.io: For socket communications with the client app.
    futoin-hkdf: Used to generate a shared encryption key
    nodegui: Creating the GUI for the server application
    node-notifier: For sending notifications to the server OS.
    PKG: See above, used to package our server into a one-click application.

  2. All the APIs calls we are building are listed in the "API.md" file located at https://github.com/SCCapstone/Neptune/blob/main/Documents/API.md.

  3. Will Amos will work on the front-end of the Android client app. Liam Diaz will work on the server back-end. Ridge Johnson will work on the back-end of the Android app. Cody Newberry will work on the API communication between the devices and a blend of the back-ends of both applications. Matthew Sprinkle will work on the front-end of the server app.

Building our Mobile and Desktop Apps

  1. To package our Node.JS server application into a "one-click" executable we will use PKG: https://www.npmjs.com/package/pkg. We will include the APK which will allow the user to open and install the application on their device.

  2. We are not using any virtual machines or containers for development.

3, 4. The UML diagram for our Android client application is located at https://github.com/SCCapstone/Neptune/blob/main/Documents/UML%20Neptune%20-%20Client.pdf.
The UML diagram for the back-end of our server application is located at https://github.com/SCCapstone/Neptune/blob/main/Documents/UML%20Neptune%20-%20Server%20Back-End.pdf.

  1. We are not using a db-backend.

  2. We will not be using any queries.

Views

Client

Home Screen

The home screen consists of multiple text views. There is a text view for each name associated with a server device and three at the bottom of the page.



Device Settings Screen

The device settings screen consists of multiple text views too. They relate to the different options a user can configure.



Notifications Settings Screen

The notifications settings screen consists of one text view and multiple image views for each app that can send notifications.



File Sharing Settings Screen

The file sharing settings screen consists of a few text views to help explain what is happening in the app.


Server

Main page

This is the main the user will interact with

Server-Main-Views

Miscellaneous pages

The three other windows/pages the user would interact with MiscScreens-Views