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 tutorify
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
Create 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
.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
- 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
.env
file:
RN_MAPBOX_ACCESS_TOKEN=your-mapbox-access-token
- Copy the public access token and add it to your
.env
file:
RN_MAPBOX_MAPS_DOWNLOAD_TOKEN=your-mapbox-public-token
Or 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
.env
file:
EAS_PROJECT_ID=your-eas-project-id
- Write your Expo username in the
.env
file:
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.json
file in your project root directory. In the development profile section of theeas.json
file, add the following configuration:
"development": {
"developmentClient": true,
"distribution": "internal",
"env": {
"ANDROID_PACKAGE": "YOUR_ANDROID_PACKAGE_NAME",
}
}
- Add the
ANDROID_PACKAGE_NAME
in the.env
file:
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 android
Or follow these steps:
- To set up expo-notifications, you need the
google-services.json
file for the project. Follow the instructions here to add thegoogle-services.json
file to the project. - 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
Before running the app, you need to create a development build. Follow these steps:
eas build --profile development --platform android
Install the resulting development build on your device or emulator.
yarn start
To create a production build of the app:
eas build --platform android
eas build --platform ios
We 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.