Chatter-Box
React-Native | CSS | React-Navigation | Firestore | Expo | JavaScript | GiftedChat | JSDocs
See the app in action! | GitHub

The Challenge
Let's say you are a person who likes to travel and share picutres and locations with your friends and family. You want an application that you can customize and send, take, and view new photos anywhere you go!You trael all over the world and some of the places life takes you don't have the best wifi! A friend you know in a village sent you directions, but you don't have a signal anywhere! Chatter-Box is here to lend a hand at this problem by providing a platform to share events and locations with friends and family, and have access to your messages offline. For when your adventures take you a little further off grid!


Tech Stack Explanation
I chose to use React-Native to complete this project because it was the ideal tool to create a hand-held chat application that you could use on the go, and offline. I incorporated Expo into the project because of the access to its wide variety of built-in APIs. React-Navigation helps build the content of the pages, and Firestore is the backbone of the project, storing and sending user messages real-time.
The Process
Chatter-Box was built up with an emphasis on collaboration, and referencing project assets was of vital importance. The goal was to bring the "client" a product as close to their visual design as possible. Throughout the development process both wireframes and user stories drove the creation of this React-Native chat app. Thorough testing and a major focus on detailed documentation helped further increase the collaborative feel and goals of this project. As the setup for this project was quite detailed and complex, a highly detailed README.md was created along with documentation created with JSDocs.

Lessons Learned
This project was a long lesson in patience and determination. Initially I began this project thinking that it would be a very simple task to accomplish in a short period of time. Rushing is never a solution to any situation, no matter how dire. I learned that when you rush, you sacrifice quality, and quality will beat out quantity when it comes to user experience every day of the week. Learning how to navigate the seemingly daily changing world of React-Native was a task well worth taking on considering all the lessons learned.