@authors Denis Wu, Nick Wactor, Yusuf Mekias, Hillari Malle, Mike Thompson, and Vaibhav Tank.
Ever wanted a more reliable source for what a place is really like? Tired of inaccurate or misleading photos? Therify is a photo-sharing app that promises users that the content they see is authentic. It uses the GPS data along with the timestamps generated in the app at the time photos were captured to 'therify' that every picture uploaded really comes from where it says it does.
Technologies Used:
- React Native
- Expo XDE
- Node.js / Express.js
- mongoDB and mongoose
- Socket.io
- mLab and Heroku
- Google Maps API / Google OAuth
To use Therify, you will need to download the Expo client app for your smart phone. Once you have it installed, on Android you can check out Therify by visiting https://expo.io/@vtank/therify and scanning the QR code there with your Expo app. iOS users are SOL will need to clone this repo and run it locally through Expo XDE in order to use the app.
Therify requires the user to login with a Google account.
Requirements: You will need node.js installed in your terminal and Expo XDE, which can be found here: https://docs.expo.io/versions/latest/introduction/installation
-
Navigate to the directory where you would like to download Therify's files and run
git clone https://github.com/v-tank/therify.git
-
cd therify
npm install
-
Open Expo XDE and click
Open existing project...
, then give it the directory to which you cloned this repository. -
Expo XDE will start the app. Once it has completed, hit the
Share
button to send the app to your phone.
Keep reading if you'd like to run your own instance of the Therify server (you will have your own private photo and user database).
-
Create a new directory separate from the Therify app and run
git clone https://github.com/v-tank/therifybackend.git
(repository for backend code can be found here: https://github.com/v-tank/therifybackend) -
cd therifybackend
npm install
-
Create a local mongoDB database called "therify". You will need to have mongo installed on your machine.
-
Navigate to line 19 of server.js (located in the project's root directory) and replace the string in
mongoose.connect("<string>")
withmongodb://localhost/therify
-
Run the following command in your app directory to change the IP address in the files to get your server to connect to the front-end:
find screens components -iname '*js' -exec sed -i s/https\:\/\/therifyserver.herokuapp.com/<YOUR_LOCAL_IP_ADDRESS>/g {} +
i. To determine your IP address to place in the above command, useipconfig
on Windows orifconfig
on Mac/Linux. -
node start
in your therifybackend directory (the one that contains server.js)
Features:
- Ability to upload videos
- In-depth Profile and Friends list
- Feed with world-wide and local happenings like news, protests, strikes, or other public gatherings where users can search their area and see if something exciting and worthy of instant verification is happening
- Ability to add universal hashtags
- Add “scheduled uploading” where a user can choose a specific time for the photo to be made public. User can take a photo at any time, but can choose when it will go live
- Ability to delete comments and photos
- Corresponding pin highlights on the map when a picture is chosen
- Better map features to dynamically change the radius of the searched photos based on the zoom level as well as their location on the map
- Rating system for photos so users can vote to add their own seal of therification
- Standalone Android and iOS apps
- Additional camera features to edit pictures before posting (cropping, orientation, filters, etc.)
Improvements:
- Image load times
- UI/UX