Giter Site home page Giter Site logo

dangerdak / allaboutme Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fac-11/allaboutme

0.0 2.0 1.0 26.83 MB

An app to help young people at Anna Freud centre to easily transition to adult care

Home Page: https://allaboutme-af.herokuapp.com/

JavaScript 53.82% CSS 6.11% HTML 37.25% PLpgSQL 2.81%

allaboutme's Introduction

All About Me ๐Ÿ’ช Build Status codecov

25.9.17 - 13.10.17 | Founders & Coders Student Project | by Constantina, Dak, Jen & Rebeca Link Here
Continued for 2 more sprints as a Graduate Project Link here| by Constantina & Dak

Summary ๐Ÿ“

All About Me is a mobile-first web application which allows young people at the Anna Freud centre to answer questions about their mental health and send their answers to their mental heath workers.

Challenge โš ๏ธ

Patients at The Anna Freud Centre were tired of being asked the same questions every time their clinician changed or when they went to a new centre. They wrote up the most commonly asked questions into one questionnaire which they could give to their clinicians, however it was still paper-based, papers often get lost and they found themselves again in a distressing place where they would have to repeat answers to personal questions.

Solution ๐Ÿ’ก

All About Me allows patients to answer the questionnaire online in their own time, save their answers, and update their details as needed. When they're ready they can send their form to their clinician.

How?

Design Sprint ๐ŸŽจ (See a detailed process here)

  • Ideation

  • Prototyping

  • User Testing

The outcome of our design sprint was a prototype designed in Figma:

figma designs

And our database design:

schema diagram

Build Sprint ๐Ÿ”ง

  • Sprint Planning

  • Build!

  • Frequent discussion of priorities and user testing results with PO

See the outcome below!

User Stories ๐Ÿ“š

In order to create a realistic MVP we focused on specific user stories we wanted to achieve.

Sprint 1

"As a user I want to be able to...:"

  • Login securely
  • Sign up to the app
  • Change the colour scheme of the whole app
  • Answer the questionnaire
  • Send answers to questions
  • Edit answers once saved
  • See my progress within the questionnaire via a progress bar
  • See completed/incomplete sections on screen
  • Access the app offline
  • Be able to use the form on mobile and desktop
  • See ideas to help with answering some questions
  • Enjoy using the app!

Sprint 2

  • Use the app offline (PWA) - no longer considered a priority
  • Change the colour scheme of the whole app
  • My data is safe and secure
  • Add 'Forgotten your password?' functionality
  • More tests to prevent unexpected errors
  • Navigate the app easily
  • Send a copy of the form to myself

Sprint 3

  • Draw my answers - feature is almost ready but is not yet tested or integrated with the rest of the app
  • Be able to hide my answers
  • Better styling on mobile
  • Fix colour change bug
  • See sensible error pages/messages when something goes wrong
  • Include any additional information I feel is relevant
  • Autosave answers - moved to sprint 4
  • Have a child-friendly experience while using the app (animations) - moved to sprint 4

Sprint 4

  • Integrate drawing capability
  • Add questions about current and previous medication
  • Improve user experience
  • Increase test coverage to ensure the app runs as smoothly as possible
  • Autosave answers to help users avoid losing their input
  • Customisable background image
  • See fun animations on the site
  • View the info page again (currently only shows on signup)
  • Answer questions using an interactive modal
  • Close their account should they choose to

The product! โœจ

Check it out here ๐Ÿ‘€

Or look at this short video that shows basic functionality of the app:

app walkthrough gif

Set up the app locally ๐Ÿ’ป

First clone this repo:

git clone [email protected]:FAC-11/AllAboutMe.git

then run npm i to install the dependencies for the app.

Database Setup

In terminal type psql or pgcli if installed. Within psql/pcli enter the following commands:

CREATE DATABASE [db_name];
CREATE USER [user_name] WITH PASSWORD '[password]'; # (password in single quotes)

Now you can set the database url in your config.env as follows (setting the values in square brackets to the values you defined in the steps above):

postgres://[user_name]:[password]@localhost:5432/[db_name]

Next run the db_build.js file in terminal:

npm run dbBuild # to build the database
npm run dbSeed # to build the database and prepopulate with seed data

This will create the tables in your database. The seed data adds a user with email [email protected] and password password.

Environment Variables

Environment variables are one of the ways we keep our product safe. If you want to access our app locally you will need to add your own.

First create a config.env file in the root directory of the project and add the following variables:

DATABASE_URL
SECRET
SESSION_SECRET

and for sending emails you need the following:

TEMPLATE_DIRECTORY = ./src/email_templates
SENDER_EMAIL_ADDRESS
AWS_REGION
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY

(Note: have a look at the SendEmail module to set this up and find the values for the variables)

Redis

Our app uses redis to store information used to reset passwords. In order to run the app locally you will need to have a redis server running on your machine. The instructions for this will vary depending on your setup: https://redis.io/topics/quickstart

Start the Server

You can now start the server! In your terminal type:

npm run devStart

then you should be able to go to localhost and view the app!

Technologies ๐Ÿ’พ

Rescources

๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿ’ƒ

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.