A mobile application designed to connect students and tutors, allowing students to find tutors based on their subjects of interest and facilitating communication between them. The app also includes a map feature to view each other's locations.
- User Profiles: Students and tutors can create and manage their profiles.
- Search Functionality: Students can search for tutors based on subjects.
- Map Integration: Tutors and students can view each other's locations on a map.
- Push Notifications: Get notified about new messages and user activities.
- Onboarding Experience: Users get a guided tour of the app features on their first visit.
- React Native: For building the mobile app.
- Expo: For development and build tools.
- Firebase: For backend services including authentication and storage.
- Mapbox: For map and location services.
- Yarn: For dependency management.
- EAS (Expo Application Services): For building and deploying the app.
To get started with Tutorify, watch the following video to set up the project on your local machine:
Or follow the steps below:
git clone https://github.com/Saadaan-Hassan/Tutorify.git
cd tutorifyMake sure you have Node.js and Yarn installed. If not installed, you can download them from the following links:
After installing Node.js, you can install Yarn using the following command:
npm install --global yarnNow, install the project dependencies:
yarn installCreate a Firebase project and obtain the configuration details from the Firebase Console. Follow these steps:
- Go to the Firebase Console.
- Create a new project, select the platform as "Web," and register the app.
- Navigate to "Project Settings" and find your Firebase configuration details.
- Add the following environment variables to your
.envfile in the project root directory:
FIREBASE_API_KEY=your-firebase-api-key
FIREBASE_AUTH_DOMAIN=your-firebase-auth-domain
FIREBASE_PROJECT_ID=your-firebase-project-id
FIREBASE_STORAGE_BUCKET=your-firebase-storage-bucket
FIREBASE_MESSAGING_SENDER_ID=your-firebase-messaging-sender-id
FIREBASE_APP_ID=your-firebase-app-id- Enable Firebase Authentication, Firestore, and Storage services in the Firebase Console.
Create a Mapbox account and obtain your Mapbox API access token:
Or follow these steps:
- Go to the Mapbox website.
- Sign up for an account or log in to your existing account.
- Go to the "Tokens" section and create a new access token.
- Copy the access token and add it to your
.envfile:
RN_MAPBOX_ACCESS_TOKEN=your-mapbox-access-token- Copy the public access token and add it to your
.envfile:
RN_MAPBOX_MAPS_DOWNLOAD_TOKEN=your-mapbox-public-tokenOr follow these steps:
- Go to the Expo website.
- Log in to your Expo account, click the Profile icon, and go to the "Projects" section.
- Create a new project.
- Obtain your EAS project ID and add it to your
.envfile:
EAS_PROJECT_ID=your-eas-project-id- Write your Expo username in the
.envfile:
EXPO_OWNER=your-expo-username- Run the following commands in your project root directory:
npm install --global eas-cli
eas login
eas build:configure- The above command will create an
eas.jsonfile in your project root directory. In the development profile section of theeas.jsonfile, add the following configuration:
"development": {
"developmentClient": true,
"distribution": "internal",
"env": {
"ANDROID_PACKAGE": "YOUR_ANDROID_PACKAGE_NAME",
}
}- Add the
ANDROID_PACKAGE_NAMEin the.envfile:
ANDROID_PACKAGE_NAME=your-android-package-name- Run the following command to upload the .env file to EAS:
eas secret:push --scope project --env-file ./.env- Create a development build:
eas build --profile development --platform androidOr follow these steps:
- To set up expo-notifications, you need the
google-services.jsonfile for the project. Follow the instructions here to add thegoogle-services.jsonfile to the project. - Run the following command to upload the
google-services.jsonfile to EAS:
eas secret:create --scope project --name GOOGLE_SERVICES_JSON --type file --value ./path/to/google-services.jsonBefore running the app, you need to create a development build. Follow these steps:
eas build --profile development --platform androidInstall the resulting development build on your device or emulator.
yarn startTo create a production build of the app:
eas build --platform androideas build --platform iosWe welcome contributions to Tutorify! If you have suggestions or want to help improve the project, please follow these guidelines:
- Fork the Repository and create a new branch for your changes.
- Make Your Changes and ensure that your code follows the existing style and guidelines.
- Write Tests for your changes if applicable.
- Submit a Pull Request with a clear description of your changes.
For more details, please refer to the CONTRIBUTING.md file.
This project is licensed under the GPL-3.0 License.



