wemmm / RememberAll

A React Native app to help you remember people

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

 888888ba                                          dP                          .d888888  dP dP 
 88    `8b                                         88                         d8'    88  88 88 
a88aaaa8P' .d8888b. 88d8b.d8b. .d8888b. 88d8b.d8b. 88d888b. .d8888b. 88d888b. 88aaaaa88a 88 88 
 88   `8b. 88ooood8 88'`88'`88 88ooood8 88'`88'`88 88'  `88 88ooood8 88'  `88 88     88  88 88 
 88     88 88.  ... 88  88  88 88.  ... 88  88  88 88.  .88 88.  ... 88       88     88  88 88 
 dP     dP `88888P' dP  dP  dP `88888P' dP  dP  dP 88Y8888' `88888P' dP       88     88  dP dP 
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
                          an app to help you remember people you meet

About | Instructions | Technologies used | Approach | Contributors |

What is this?

icon

A very cool React Native app that helps you remember folks when you can't even.

How do I use it?

Clone this repository to your machine:

$ git clone git@github.com:jjadeseravla/RememberAll.git

Naviagte to the repo:

$ cd RememberAll

Install all the packages:

$ npm install

Run the unit tests:

$ npm test

Download either Xcode or Android Studio and run virtual machine

When you're ready to run the application

react-native run-ios

or

react-native run-android

Technologies used

  • React Native
  • Jest & Chai for unit tests
  • Cavy for integration tests
  • Realm DB
  • XCode, Android Studio for Iphone / Android Emulation
  • Waffle.io

Contributors

How team RememberAll does things

CHARTER:

We have stand-ups at 9:42 every day.
We will endeavour to have a laugh.
We commit in the present tense.
We use sensible, informative commit messages.
We review any issues as they arise.
We definitely have retros at 6PM, or 5PM in the event that someone is leaving early.
We actively rotate the leaders of retros and stand-ups.
We will have lunch/drinks together at some point (and we will not talk about code)
We respect that we all have lives outside of coding.
Well-being of team members comes first.

Approach

Initial Mockups:

To help us visualise a product, we worked on some initial sketches of what our 'dream app' might look like. Although our layout was ultimately a little different, you can see the colour choices and narrative elements persisted into the final app.

Mock up of MVP Mock up of profile page

Approaching the problem:

  • We had to consider an ethical angle, as one of our intial ideas was scraping info from social networks. Our conclusion? If you have to "get weird" to get some information about someone... it's probably not okay.
  • Due to ethical concerns we chose to move away from info scraping and towards a 'friendly' contacts app that allowed users to store any info they found relevent about a contact, search by any tag or field, and see a sort, readable narrative interpolated from that info. So we proceeded to write user stories for this set of features.
  • We defined our MVP as a form with a single text field that persists a name to a database.
  • To achieve this, we had to learn how to use React Native and Realm.
  • But even more challenging than learning this new tech- testing new tech!
  • So we learned how to unit test with Jest, and how to do integration tests with Cavy.
  • We mob programmed our way to MVP- hallelujah!!
  • Then we iterated on our MVP by adding one feature at a time- additional fields, a tagging system, search functionality, narrative generation, profile editing and a bit of styling.

Our Minimum Viable Product:

MVP

...And the styled, feature-having version:

nottheMVP

User Stories

As a user,
So I can remember more about people I meet,
I would like an app to help me with this.

As a user,
So I can remember a person,
I would like to add a contact.

As a user,
So I can add information about a person,
I would like to add tags to a contact.

As a user,
So I can look up people whose names I've forgotten,
I would like to search my contacts by any details I know about them.

As a user,
So I can look up the details of a person I know,
I would like to be able to search contacts by name.

As a user,
So I can see all the information and details I know about a specific contact,
I would like to see a contact's profile.

As a user,
So I can see and browse all existing contacts,
I would like to see a full list of contacts upon opening the app.

As a user,
So I can keep my information up to date,
I would like to be able to update details of an existing contact.

As a user,
So I can better remember things about a person,
I would like to see a narrative of things I know about them on their profile.

Miscellany

Click the still below to see a live action advert featuring the incredible acting skills of Lubos and Simon!

rememberallad

A beautiful action shot of us mob programming:

Mob programming

About

A React Native app to help you remember people


Languages

Language:JavaScript 80.4%Language:Objective-C 11.3%Language:Python 4.4%Language:Java 3.8%