Giter Club home page Giter Club logo

b4-hypnobuddy's Introduction

B4: Hypnobuddy

Description

Hypnobuddy is a web application built with Node.js, TypeScript, MongoDB, Jest, Vite, React, Bootstrap, and SCSS.

It is designed to designed to enhance the effectiveness of hypnotherapy sessions, particularly for children and adolescents. The app facilitates seamless communication between hypnotherapists, young clients, and parents, empowering all parties involved.  Hypno Buddy strengthens the bond and trust between therapists and patients, emphasizing mutual collaboration. Patients receive support, visualization, and reflection to reinforce progress in their daily life without external pressure, while therapists benefit from enhanced communication for resource sharing.

This application combines the robust backend capabilities of Node.js and MongoDB with the powerful frontend framework of React and the styling flexibility of Bootstrap and SCSS.

Prerequisites

Before you begin, ensure you have met the following requirements:

  • Node.js (version 20.9)
  • npm (version 10.2.4)
  • MongoDB (version 7.0.2)

Installation

To install Hypnobuddy, follow these steps:

1. Clone the repo:

git clone https://github.com/justingebert/b4-hypnobuddy.git

2. Start the terminal and switch to the Backend Folder

cd Backend

3. Install dependencies:

npm i

4. Compile TypeScript

The app is written in TypeScript so you have to compile it to Vanilla JavaScript first, the Frontend does that by starting the server, the Backend has to be done mannually by opening another terminal session going into the Backend Folder and starting the Typescript compiler like this:

tsc

5. Run the Backend

To run Hypnobuddy, use the following command:

npm run dev

This will start the Backend on http://localhost:8080 by default und MongoDB server on http://localhost:27017

6. Start another terminal and switch to the Frontend Folder

cd Frontend/hypno-buddy

7. Install dependencies:

npm i

8. Run the Frontend

npm run dev

This will start build and the Frontend using Vite on http://localhost:5173 by default.

Unit Testing

Jest is used for writing and running tests. To run tests, use:

npm run test

End-to-End Testing

Cypress is used for writing and running tests. To run tests, use:

npx cypress open

Features

The features of Hypnobuddy are:

Roadmap Feature

  • Patients set and track daily life goals, either independently or during therapy sessions.
  • Therapists use patient insights to evaluate therapy effectiveness and observe progress in real life.
  • The comment feature facilitates ongoing interaction, allowing therapists to guide and motivate.
  • Goal: Enhance patient motivation, awareness, and appreciation of progress in their therapeutic journey.

Dos and Don'ts Guide for Parents

  • Practical, therapist-created tips linked to the patient's experiences, addressing common challenges.
  • Patients can view the recommendation, updated in real-time format.
  • Goal: Enhance the effectiveness of the child's therapy process through targeted parental insights.

Journaling and Mood Tracking

  • Personalized feature in Hypno Buddy for self-reflection and mood tracking.
  • Simple journal interface for tracking emotions and focusing on positive aspects of the day.
  • Text field for entries, sample questions for guidance, and emoji-buttons for mood representation.
  • Goal: Empower users to track feelings, celebrate achievements, and contribute positively to their therapeutic journey.

Troubleshooting

  • delete node_modules folder
  • delete package-lock.json
  • run npm i again

Development

Available Fonts:

  • Oscine
  • FinalSix
  • Input Serif
  • Bebas Neue SemiRounded
  • Novecento Sans

How to use:

  • use vars: type $ -> intellisense will show you the available vars
  • For family use:
    • $oscine-family
    • $finalsix-family
    • $input-serif-family
    • $bebas-neue-semirounded-family
    • $novecento-sans-family
  • For weight use:
    • $oscine-light-weight
    • $oscine-regular-weight
    • $oscine-bold-weight
    • $finalsix-light-weight
    • $finalsix-medium-weight
    • $finalsix-semibold-weight
    • $finalsix-bold-weight

Contributing

Hypnobuddy is a university project. Contributions are not provided.

Authors

This project was created as a semester project for HTW Berlin, Studiengang Internationale Medieninformatik (International Media and Computer Science).

This project is created by:

  • Justin Gebert @justingebert
  • Mai Le Phuong @maile000
  • Sina Han @snahn2209
  • Pia Dünow @PiaDue
  • Nataliia Remezova @NataliiaRemezova
  • Marwa Hariz @maria12396

b4-hypnobuddy's People

Contributors

nataliiaremezova avatar snahn2209 avatar justingebert avatar maile000 avatar piadue avatar maria12396 avatar

Stargazers

 avatar  avatar  avatar

Watchers

Andreas Lehner avatar  avatar

b4-hypnobuddy's Issues

create patient record process

Story
as a T I want to press a "create" button to save the new patient record

Acceptance Criteria

  • relation between therapist, patient, and parents gets established(saved in db)

Tasks

  • save button
  • create route
  • create new record db

Notes
form data: email patient, email parents, category
problem: children often don't have an own email adress

register form

Story
As user I want to get a form for registration so that I can enter my data

Acceptance criteria

  • role input (Therapist, Patient, Parent)
  • email input
  • email validation
  • first name input
  • last name input
  • password input
  • create button

Tasks

  • register route
  • get req
  • create form

edit goals with queue

As a (P), I want to be able to edit the goals order by opening a queue window and dragging them to the right place

login form

Story
As a user i want to be able to log in with my email and password

Acceptance criteria

  • email input
  • password input
  • login button

Tasks

  • login route
  • get req
  • login form

Notes

view profile

Story
As a user i like to see my data so i know what contact information i saved in the app

Acceptance Criteria

  • display email
  • display first & last name

Tasks

  • create profile route
  • db get req
  • UI

Notes

Illustration

Illustrationen für die Webseite erstellen.

Definition of Done:

  • Emotionen darstellen
  • Homeseite für Kinder illustrieren
  • Design Elemente für die Webseite erstellen

Goal setting feature

An epic for the goal setting feature

  • As a user, I want to have a possibility to set my goals in the app.
  • As a user, I want to be able to track my progress towards my goal.
  • As a user, I want to break my big goal into smaller steps, to have a plan of achieving it.
  • As a user, I want to get rewards for competing steps towards my goal.

login process

Story
As a user i want to be able to log in and stay logged in

Acceptance criteria

  • db get req
  • validate form data
  • save user data in new session

Tasks

  • @

Notes

open dashboard after login success

Story
As a user i want to see my dashboard after logging in

Acceptance Criteria

  • login success -> dashboard
  • login failure -> warning + login refresh

Tasks

  • redirect

Notes

logout

Story
As a user i want to be able to log out and stay logged out

Acceptance Criteria

  • logout ends session
  • delete cookies

Tasks

  • logout route
  • end session

Notes

categorise patient

Story
as a (T) I can give my patient a category based on the problem

Acceptance Criteria

  • therapist can only choose between given options

Tasks

  • get categories form db
  • selection input (suggestion: drop-down menu)

Notes

invite patient and parents to therapy

Story
As a therapist I want to be able to add a patient to a therapy
As a therapist I can add parents to a therapy

Acceptance Criteria

  • validation

Tasks

  • email input fields
  • check if user exist

Notes

registration process

Story
As user I want to press an "register" button to create my account

Acceptance criteria

  • validation of form data
  • password encryption
  • creates new db entry

Tasks

  • db model
  • create req

Notes
form data: email, first name, last name, password, role (T, P, PG)

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.