An app where incoming college freshmen can find dorm roommates.
This is just the frontend of the app, if you're looking for the backend: https://github.com/gabekutner/roommatefinder-backend
- ⚛️ React Native CLI
- 🐻 Zustand State Management
- ⚡ Fast Image
- 🧭 React Navigation
- 🖥️ Axios
- 🚀 FontAwesome
- 🌐 React Native Paper
- 🖼️ React Native Image Picker
- 🔒 React Native Encrypted Storage
Check out the live app! Dorm Party Demo
-
Fork the Repo: Click the "Fork" button on the top right of this repository. If you're new to forking, check out this YouTube Guide.
-
Clone Your Fork: Click the Clone or Download button on the top right of your forked repo and clone it:
git clone https://github.com/your-username/roommatefinder-mobile.git
- Navigate to the Directory:
cd roommatefinder-mobile
-
Install Dependencies:
-
Install
nvm
thennode
&npm
:brew install nvm && nvm install
-
Install
watchman
:brew install watchman
-
Install Xcode tools and make sure the optional "iOS Platform" package is installed.
-
-
Install Project Dependencies:
npm install
-
Install CocoaPods Dependencies:
npx pod-install
-
Configure the Backend:
-
Make sure the Django REST backend is running. Don't worry this is super easy, follow the instructions in that repository here: https://github.com/gabekutner/roommatefinder-backend.
-
Update the API address in
src/constants/apiConstants.ts
:const ADDRESS = "http://<YOUR_IP_ADDRESS>:8000";
-
-
Start the Project!
npm start
These instructions should get you set up ready to work on Dorm Party 🎉
- Login and registration with JWT token
- Create profile
- Update personal information
- Add photos
- Send message requests
- View profile details
- View roommate matching quiz
- Chat with friends
- Based on sex, dorm building, common interests, major, state, and more (details in the backend).
Most of the code is located in the src/
folder. Here's a brief overview:
-
assets : Images, fonts, theme, and constant data.
-
components : Reusable UI components.
-
constants : Constants used throughout the app (mostly deprecated).
-
core : Core functionalities (mostly deprecated).
-
libs : Zustand state management (
store/
), util functions, api definition, device storage. -
navigators : Navigation configuration (Auth and App Navigation).
-
types : Typescript types for the parts of the app that use typescript.
-
views : Screen components organized in folders, with each folder containing an
index.js
file used for navigation.
To contribute code changes, please follow these steps:
-
Fork the Repository: Click the "Fork" button on the top right of this repository.
-
Clone Your Fork: Clone your forked repository to your local machine:
git clone https://github.com/your-username/roommatefinder-mobile.git
-
Create a Branch: Create a new branch for your changes:
git checkout -b your-branch-name
-
Make Changes: Implement your changes on this branch.
-
Commit Changes: Commit your changes with commit message letting me know what you did:
git add . git commit -m "Add a descriptive message about the change"
-
Push to Your Fork: Push your branch to your forked repository:
git push origin your-branch-name
-
Create a Pull Request: Open a pull request (PR) from your branch to the
main
branch of the original repository. Give a description of your changes and reference any related issues.- Title: A beautiful title for your PR.
- Description: Explain what changes were made, why they were made, you get the gist.
-
Celebrate: Once your PR is merged, celebrate!! 🎉