The Dormy app for iOS and Android. Written in Vue Native.
- Matching rideShare and possibly remove the listing once matched with someone
- Messaging functionality
- Individual housing listing separate screen
- Upload of images (firebase free quota was exhausted, so may need to rework this)
- Image compression (since uploading a 14MB file to firebase was clearly not economical)
- Proper functionality for the drawer navigator including profile, settings, and contact
- Saving housing listings
- A way to contact the lister of either rideshare/housing using a button or some shit like that
- .edu address verification (might send over an email verification for production)
The app is structured into different Vue components. In the terminology of Dormy, they are referred to as Screen
(s).
The basic layout of the app is as follows:
App.vue -> Entry point
Start.vue -> Login/Sign-up wrapper screen
(entered only if not signed in)
Screens/ -> All additional screens are located here
Home/Home.vue -> Homepage/Search Functionality
Housing/Housing.vue -> Rent/Sub-lease locator
Rideshare/RideShare.vue -> Self-explanatory
Roomate/Roomate.vue -> Roomate matcher
** Components added must be added here **
assets/ -> App assets like fonts and images must be added here
Firebase:
Mostly all of the code-base is just a front-end to the Firebase noSQL
database. We have the following components linked to FireBase:
- User Registration and Login (using
OAuth2
) - Images (TODO as free version quota has been exhausted)
- Chats (1-on-1 chats seemed to be supported out-of-the-box by Firebase. (TODO)
- Ride sharing Document information
- Housing Document Information
The FireBase database and all other communication for the app is done with the following Gmail address (try to keep this secure). This prevents any personal conflicts:
Email: [email protected]
Pass: �******
- Vue native CLI must be installed. Installation instructions here: vue-native-cli
- Install
expo
withnpm install --global expo-cli
- Xcode for running the simulator to test the application.
- Double check the requirements in the
package.json
file. Running it withnpm install
while beingcd
'd in the directory should ideally work fine.
iOS:
cd
into the dormy repo and runnpm run ios
to run the iOS simulator. If you wish to change the default simulator, just select the new device from the simulator, quit the simulator, and run thenpm run ios
command again to run the application on the target device.Android:
Yet has to be tested, but assuming you have the Android SDK on your system, all you would have to run isnpm run android
.
Here are the steps to follow to get it running on iOS:
- Download and install Xcode. Also make sure that
Xcode
runs fine and agree to the privacy statement as theiOS preview
er will not work if this is not followed correctly. - Once inside the root of the project, run
npm install
to install all dependencies related to the project. - To run the app in the
iOS preview
application type:npm run ios
. The app should be up and running.
- Please do keep your commits small with an informative message accompanying the commit.
- Whenever, implementing a new feature, please do split the
master
branch off into another branch (Ex:search-functionality-home
. Then when fully tested, merge the branches, and commit. This will save the hassle of merge conflicts in some cases. - For all files, mostly including the
.vue
files, I've been following the Google HTML Style Guide - To sum it in a nutshell, indent with 2 spaces,
JS
variables to becamelCased
, and use the1TBS
for function declarations.
Vue Native is still an in-alpha stages sort-of-thing project so if you have some issues, consult the React Native Docs
Most of the shit available in React Native, can directly be used in Vue Native provided you npm install
'd the sub-library.
The privacy agreement can be found in the root of the project folder in a file name privacy_license.pdf