Documentation Plan
Users
The primary users of our application are stakeholders from the Department of Computer Science at UNC-CH, including:
- RA Applicants
- Faculty Members (seeking RAs)
- Administrators (faculty managing RA assignments)
The Technical Documentation, in conjunction with the Handoff Plan, aims to provide users with comprehensive insights into the application's technical aspects. This will enable users to install, reproduce, and, if necessary, modify the application in the future.
Technical Documentation
This document provides a detailed overview of the technology stack used in the project. It also includes step-by-step instructions for setting up the required tools and configuring the application after downloading the code from the Git repository.
Technologies and Code Repositories
Project Repositories
The complete source code for this project is hosted on GitHub across two repositories, providing separate management for backend and frontend components.
- Backend Repository: https://github.com/yashas-hm-unc/matchwise-backend
- Frontend Repository: https://github.com/yashas-hm-unc/matchwise
Technologies Used
- Backend: Firebase (Python)
- Frontend: Flutter (Dart)
For a detailed description of the project, please refer to:
Setting up Backend (Firebase)
Add the SDK
If you are setting up a new project, you need to install the SDK for the language of your choice. The Firebase Admin Python SDK is available via pip. You can install the library for all users via sudo:
$ sudo pip install firebase-admin
After Installing the Firebase SDK
Sign into Firebase using your Google account.
Steps to Run Firebase Functions Locally:
Prerequisites:
- Install Python and an IDE (e.g., PyCharm, VS Code, IntelliJ IDEA).
- Firebase Admin Python SDK requires Python 3.7+ (recommend 3.8+).
- Install Git (optional: GitHub Desktop).
-
Clone the repository:
$ git clone https://github.com/yashas-hm-unc/matchwise-backend
-
Install Python dependencies:
$ pip install -r requirements.txt
-
Install Firebase CLI:
$ npm install -g firebase-tools
-
Log into Firebase:
$ firebase login
-
Start the Firebase Emulator Suite:
$ firebase emulators:start
You can access Firebase functions by opening a web browser and navigating to http://127.0.0.1:4000/functions.
Setting up Frontend (Flutter)
Flutter is a cross-platform UI/UX development tool which uses Dart language to configure views.
Install the Flutter SDK
For detailed setup instructions based on your development platform, visit the official guide: Flutter Installation Guide.
Running Flutter Frontend
$ firebase login $ flutter configure $ flutter run lib/main.dart
Install the IDE
You can either use VS Code or IntelliJ Idea. The official Flutter installation page has detailed instructions on how to install Flutter SDK on VS Code, so it might be convenient to work with it.
Add Firebase to your Flutter App
To integrate Firebase into your Flutter app, follow these steps:
- Install Tools: Set up the required command-line tools for Firebase integration.
- Configure the App: Update your app's settings to connect it to your Firebase project.
- Initialize Firebase: Add initialization code to your app to enable Firebase features.
For detailed guidance, visit the Firebase Setup for Flutter.