Skip to content

NuGoon-Studio/Testimonies

Repository files navigation

Testimonies.Social

πŸ“² Sharing stories of faith.

Overview

Intro

Testimonies.Social is a mobile application to share the gospel through our individual experiences. By sharing our personal stories of faith, perseverance and trial we can inspire and encourage others going through similar situations. Our goal is for users to receive hope, receive prayer and be found by others seeking the same. πŸ™πŸ™πŸ™

Key Features

  • Sharing testimonies publicly and anonymously.
  • Finding testimonies through a tag search system.
  • Paticipating in testimonies of gratitude and prayer.
  • Following ongoing testimonies you can pray for.

Additional Material

Canva Original project write up
Figma Design prototype

3 Panel Mock Up

Roadmap

Goals

πŸ§‘β€πŸ€β€πŸ§‘ As a user I want to...

  • Feel like I'm not alone in my struggle.
  • Feel inspired by others' victories.
  • Help others with my story.
  • Point people to the Lord.
  • Feel part of a community who wants to do more for others.
  • Feel accepted.
  • Find hope in my trial.
  • Be found.

πŸ§‘β€πŸ’» Some technical goals include:

  • Showcase my ability as an engineer unencumbered by client NDA's
  • Share 3 React Native Web templates without Expo
  • Share a fully built mobile application frontend
  • Test React Native for Web's viability in a production level application
  • Learn Devops from scratch
  • Master Backend development from scratch

Progress

Not all progress of the project is reflected here in this repository. The backend will be a private repository and dev ops work such as configure and CI/CD will also be private. For convience however I have included the status' of those aspects of the project in this document. The list of items will grow but remain mostly high level.

Frontend Backend DevOps
  • βœ… Template - React Native Web Bare (No Expo)
  • βœ… Template - React Native Web w/ React Navigation (No Expo)
  • Template - React Native Web w/ React Navigation, Redux and Redux Sagas
  • Document Templates
  • βœ… React Native without Expo Project
  • βœ… Integrate React Navigation
  • Integrate Redux
  • Integrate Redux Sagas
  • Refactor React Navigation for Redux
  • Integrate component library - TBD which library
  • Push live to web for active progress
  • Build application with local mock data
  • Connect application to API
  • Publish application to iOS app store
  • Publish application to android play store
  • Node.js Server Setup
  • Express.js Integration
  • MongoDB Setup
  • MongoDB Schema Config
  • Integrate Authenication - TBD which tech
  • Build application routes
  • βœ… Purchase relative domains
  • βœ… AWS Organizaional Structure
  • βœ… AWS Permission Sets
  • βœ… AWS IAM Groups
  • βœ… AWS IAM Users
  • βœ… AWS Billing Config
  • βœ… AWS CLI Config
  • Route 53 Domain Setup
  • Kubernetes Master ECR
  • Kubernetes Node EC2
  • Docker Pod - Frontend
  • Docker Pod - Backend
  • Docker Pod - MongoDB
  • CI/CD Pipeline - Frontend
  • CI/CD Pipeline - Backend

Technology

Frontend Backend DevOps
  • React Native Web
  • React Navigation
  • Redux
  • Redux Sagas
  • Node.js
  • Express.js
  • MongoDB
  • AWS
  • Kubernetes
  • Route 53
  • ECR: Kubernetes Master
  • EC2: Kubernetes Node
  • Docker Pod: Frontend
  • Docker Pod: Backend
  • Docker Pod: MongoDB

Challenges

Sorting Testimonies

Mimicking the β€œfan out” approach utilized by Twitter, I plan to create data stores for each tag. Testimony ids will be entered into these stores. In addition to the system design, predefined tag values will mitigate performance degradation across user-defined tags.

Sharing Anonymously

Being able to share and read personal struggles and victories publicly is a powerful thing. However, there are many instances when a user may not want to share their identity. By combining a privacy flag and obfuscating posts we can provide users activity on their feed, prayer and encouragement without bearing the shame of what they have gone through.

Backend Development

With direction from close colleagues, I’m excited to implement a RESTFUL API from the ground up. My experience with the backend has been reserved to a handful of routes and modification of existing routes. The limited scope of the project allows for the growth of my abilities as an engineer. This will officially transition my skillset from frontend to full stack engineer.

Usage

Installation

Navigate to the folder you want to store things and clone the repository

git clone https://github.com/NuGoon-Studio/Testimonies.git

Setup

Install the dependencies with yarn

# using Yarn
yarn install

Running Application

Let Metro Bundler run in its own terminal. Open a new terminal from the root of your React Native project. Run the following command to start your Android , iOS or Web app:

For Android

# using Yarn
yarn android

For iOS

# using Yarn
yarn ios

For Web

# using Yarn
yarn web

# Web App hosted on http://localhost:8080/

Validating Types

# using Yarn
yarn tsc

Your turn

Feel free to play around with the project yourself. Edit and modify however. The entry point has been modified to src/App.tsx with the web/public/index.html being another noteworthy file within the project.

Conclusion

Inspiration

During the job hunt process like many other hard moments in life it’s encouraging to connect and hear stories of others who have gone through a similar process. With this products mission and the opportunity grow as a engineer I am looking forward to providing real hope amidst the trial of day to day life.