RoommateFinder is a mobile application that we built for a senior project course. It is an application that assists people in finding their ideal roommates. This process is facilitated by having a questionnaire (for logistical questions) and an optional personality test to help users find someone that they are compatible with. Users can look at other users profiles and assess them based on questionnaire and personality test results to see if the person is a good fit. Users can also create listings (i.e. if they already have a place but need roommates). Once the listing is created, other users can view the listing as well. To motivate conversation between users, user have access to other user's contact information which can be viewed in a listing or another roommates profile. To learn more about the app, please read our documentation.
The members of our group were Cyrus Tabatabai, Alexis Diaz, Osher Boudara and Vidas Sileikis. Alexis and Cyrus handled most of the front end development. Cyrus spent alot of time debugging and Alexis also took care of all the error handling. Vidas helped faciliate the project and handled most of the navigation of our application. Further, he developed the zipcode distance algorithm used to check the distance between a user and a listing and also helped develop the personality typing algorithm (the algorithm that assigns personality types). Additionally, Vidas and Osher set up fetch functions in the React Native to communicate with Python Flask backend via POST and GET requests. Osher handled the database design and creation of the tables. Osher wrote all the MySQL queries embedded in Python. The MySQL queries included create, insert, select, update and deletion functions. Osher wrote all the Python code used in the application which communicated with React Native front end using POST and GET requests and executed SQL queries.
We used React Native, Python and MySQL languages in the development of our application. Python packages that require installation are Flask, flask-cors and mysql.connector. We also used Expo to manage our React Native packages and to run our application in the web browser. We used XAMPP to launch our MySQL server. All packages must be installed in order to launch our application. To run our application, firstly, one must start a MySQL server preferably using XAMPP. Then, one must run the db_conn.py file to start the backend. Click the link provided in the command line to ensure the backend is working. The message "success" should be printed if working. Then, open another terminal and start expo using the command expo start (yarn start also works if using yarn over expo for packages). Then, a link to a browser will display where one can launch the application.