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
expowithnpm install --global expo-cli - Xcode for running the simulator to test the application.
- Double check the requirements in the
package.jsonfile. Running it withnpm installwhile beingcd'd in the directory should ideally work fine.
iOS:cdinto the dormy repo and runnpm run iosto 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 ioscommand 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
Xcoderuns fine and agree to the privacy statement as theiOS previewer will not work if this is not followed correctly. - Once inside the root of the project, run
npm installto install all dependencies related to the project. - To run the app in the
iOS previewapplication 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
masterbranch 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
.vuefiles, I've been following the Google HTML Style Guide - To sum it in a nutshell, indent with 2 spaces,
JSvariables to becamelCased, and use the1TBSfor 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
