BU-Spark / se-oasis

GNU General Public License v3.0
0 stars 1 forks source link

Oasis Wellbeing - A Mental Health Application

Project Description

Oasis is an interpersonal journaling application that uses the power of AI to link, connect, acquiesce, and remember your mental recollections and thoughts. Think of a guide that not only analyzes entries but provides a response that is much more palatable than Chat GPT.

Oasis also provides the ability to give the AI context by allowing users to upload historical journaling content. Leveraging the content, the AI can create a “history” with that user improving the responses given on future queries or journal entries.

Collaborators

Name Email GitHub Username
Vishwas Bhaktavatsala vishwasb@bu.edu vishwas21
Harshitha Tumkur Kailasa Murthy harshutk@bu.edu harshithatk33
Erwin Pimentel erwinp@bu.edu RevibeZ

Quick Tour

Deployment is done on Google Cloud Platform. Link to access the application :

Presentation Link to understand what is completed till date:

Tech Stack

Component Name
Front End React.js with Typescript
Back End Hapi.js w/ Javascript
Database Firestore
Servers & Load Balancing GCP
API Services Google Cloud Functions
Unit Testing Jest
Monitoring & Performance Tools Grafana & JMeter

Front End

React.js with Typescript provides a wide variety of control over components. It provides for enchanced code readability and ensures that errors are easier to catch at compile time rather than runtime.This combination overall will lead to fewer bugs, an improved developer experience, and better collaboration among developers.

Back End

Hapi.js with Javascript allows for scalable and secure web applications with minimal overhead and full out-of-the-box functionailty. Features such as secure defaults, which block error messages that may leak information, alongside validation, caching, and authentication support make it an ideal choice. Hapi.js also boasts a robust plguin system that allows developers to add new features and fix bugs at a fast pace.

Database

PostgreSQL is a free and open source relational database management system. Its wide range of features alongside its reputation as a very stable and reliable system make it the ideal solution for managing large scale projects in even the most demanding environments.

Servers & Load Balancing

Microsoft Azure offers very reliable and easy to use tools that make building and launching web applications a breeze.

API Services

Moleculer.js is a fast and powerful progressiv emicroservices framework for Node.js. It is extremely scalable with built in load balancers and fault tolerance. It offers a robust event-driven architecture model and a variety of additional features and development tools which make it a veyr useful implementation.

Unit Testing

Jest is a very popular JavaScript testing framework which is developed and maintained by Facebook. It has many built in tools for testing all kinds of different code and even supports parallel test runs to maximize performance.

Monitoring & Performance Tools

Grafana and JMeter are both open source software with extensive application monitoring utility. Grafana will allow us to visualize, alert on, and understand our metrics no matter where they are stored. JMeter will allow us to measure our performance and load-test our web applications.

Folder Structure

Main components

  1. Client
  2. Server

(Front-End) Client structure :

Screenshot 2023-12-16 at 2 36 45 PM

src: Folder has various sub folders inside it referring to different usages as explained below.
_assests: This folder has all the images, logos for the application till now. In future the videos and photographs of the team could be added. As and when required can be used by giving reference of thid folder.
_components: This folder has all the fron-ent pages that is developed and deployed till now. Each page is made as a sub-folder and a index.js file is used to write the main code for that specific page and styles.css file is used to add stylesheet.
_config : This folder has the configurations from front-end to different middleware components.
_utils: This folder has the authentication for various components connected to the Login and SignUp pages. In future the authentication for maintaing app securely.

(Back-end) server structure:

Screenshot 2023-12-16 at 2 36 58 PM

_config : This folder has the configurations from back-end to different backend components like tge deployment credentials or authentication to DB.

src : Folder has various sub folders inside it referring to different usages as explained below. _routes :

_microservices:

_utils:

core structure : This folder is used to get Event-driven architectural components into the framework.

Eventlisteners files are added for both Login and SignUp events that are completed till now. In future the same folder can be used to add the remaining events as and when required.

Screenshot 2023-12-16 at 2 37 09 PM

Project Files structure

This is used to maintain all the architecture level desicion daigrams or any documents related to the project.

Screenshot 2023-12-16 at 2 37 16 PM

README.md - File to explain the server folders and their usage.

Deployment Documentation

Click Here to know more about the deployment process and steps.

Issues Documentation

Click Here to know more about the deployment process and steps.

Instructions to run the application needed here

Using Docker Compose

We can directly use the docker compose to run the whole application.

    docker compose up -d

Using local terminal

Following steps must be followed:

    git clone https://github.com/BU-Spark/se-oasis.git
    cd ./se-oasis/client
    npm install
    npm run start
    cd ./se-oasis/server
    npm install
    npm run start