Skip to content

Tutorify is a comprehensive platform designed to connect students with tutors for personalized learning experiences. Built with React Native Expo, Firebase, and Mapbox, Tutorify offers a seamless and user-friendly interface for both students and tutors. Join the wait list!

License

Notifications You must be signed in to change notification settings

Saadaan-Hassan/Tutorify

Repository files navigation

Tutorify

Tutorify - Connect Students and Tutors

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.

GitHub license GitHub issues GitHub stars GitHub forks GitHub watchers

πŸ“‹ Features

  • 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.

πŸ—ΊοΈ Table of Contents

πŸš€ Technologies Used

  • 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.

πŸ“¦ Installation

To get started with Tutorify, watch the following video to set up the project on your local machine:

WATCH THE VIDEO

Watch the video

Or follow the steps below:

1. Clone the Repository

git clone https://github.com/Saadaan-Hassan/Tutorify.git
cd tutorify

2. Install Dependencies

Make 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 yarn

Now, install the project dependencies:

yarn install

βš™οΈ Configuration

1. Set Up Firebase

Create a Firebase project and obtain the configuration details from the Firebase Console. Follow these steps:

  1. Go to the Firebase Console.
  2. Create a new project, select the platform as "Web," and register the app.
  3. Navigate to "Project Settings" and find your Firebase configuration details.
  4. Add the following environment variables to your .env file 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
  1. Enable Firebase Authentication, Firestore, and Storage services in the Firebase Console.

2. Set Up Mapbox

Create a Mapbox account and obtain your Mapbox API access token:

WATCH THE VIDEO

Watch the video

Or follow these steps:

  1. Go to the Mapbox website.
  2. Sign up for an account or log in to your existing account.
  3. Go to the "Tokens" section and create a new access token.
  4. Copy the access token and add it to your .env file:
RN_MAPBOX_ACCESS_TOKEN=your-mapbox-access-token
  1. Copy the public access token and add it to your .env file:
RN_MAPBOX_MAPS_DOWNLOAD_TOKEN=your-mapbox-public-token

3. Set Up EAS (Expo Application Services)

WATCH THE VIDEO

Watch the video

Or follow these steps:

  1. Go to the Expo website.
  2. Log in to your Expo account, click the Profile icon, and go to the "Projects" section.
  3. Create a new project.
  4. Obtain your EAS project ID and add it to your .env file:
EAS_PROJECT_ID=your-eas-project-id
  1. Write your Expo username in the .env file:
EXPO_OWNER=your-expo-username
  1. Run the following commands in your project root directory:
npm install --global eas-cli
eas login
eas build:configure
  1. The above command will create an eas.json file in your project root directory. In the development profile section of the eas.json file, add the following configuration:
"development": {
  "developmentClient": true,
  "distribution": "internal",
  "env": {
    "ANDROID_PACKAGE": "YOUR_ANDROID_PACKAGE_NAME",
  }
}
  1. Add the ANDROID_PACKAGE_NAME in the .env file:
ANDROID_PACKAGE_NAME=your-android-package-name
  1. Run the following command to upload the .env file to EAS:
eas secret:push --scope project --env-file ./.env
  1. Create a development build:
eas build --profile development --platform android

4. Set Up Expo Notifications

WATCH THE VIDEO

Watch the video

Or follow these steps:

  1. To set up expo-notifications, you need the google-services.json file for the project. Follow the instructions here to add the google-services.json file to the project.
  2. Run the following command to upload the google-services.json file to EAS:
eas secret:create --scope project --name GOOGLE_SERVICES_JSON --type file --value ./path/to/google-services.json

πŸƒ Running the App

Before running the app, you need to create a development build. Follow these steps:

1. Build a Development Client

eas build --profile development --platform android

Install the resulting development build on your device or emulator.

2. Start the Development Server

yarn start

πŸ› οΈ Building the App

To create a production build of the app:

Build for Android

eas build --platform android

Build for iOS

eas build --platform ios

🀝 Contributing

We welcome contributions to Tutorify! If you have suggestions or want to help improve the project, please follow these guidelines:

  1. Fork the Repository and create a new branch for your changes.
  2. Make Your Changes and ensure that your code follows the existing style and guidelines.
  3. Write Tests for your changes if applicable.
  4. Submit a Pull Request with a clear description of your changes.

For more details, please refer to the CONTRIBUTING.md file.

πŸ“„ License

This project is licensed under the GPL-3.0 License.

About

Tutorify is a comprehensive platform designed to connect students with tutors for personalized learning experiences. Built with React Native Expo, Firebase, and Mapbox, Tutorify offers a seamless and user-friendly interface for both students and tutors. Join the wait list!

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •