React Native App (for iOS) for Excelerate Junior Design project
- Mentees can set goals for themselves.
- Mentees can update, complete and delete their goals.
- Mentees can view and delete completed goals (accomplishments).
- Mentors can add mentees to their profiles.
- Mentors can view their mentees’ goals and make comments.
- Mentors can view their mentees' completed goals (accomplishments).
- Mentees can view comments given by their mentors.
- Users can update their profiles, changing email, firstname, lastname and password.
N/A. This is the first release.
- The server is currently deployed on Heroku on the free plan, so it sleeps after 30 minutes of inactivity. If a user tries to login when the server is sleeping, it takes about 30 seconds for the server to wake.
- The button sizes are fixed, so the screen often does not scale appropriately to smaller screens.
- Functionality promised but not included in this release
- Mentors set goals for themselves
- Calendar integration
- Admin functionalities
The Excelerate App uses an open-source toolchain for React Native called Expo. Expo can be leveraged to develop and build a mobile application on any operating system that supports Node.js and the Expo toolchain (Windows, macOS, most major Linux distros).
- Install Node.js (version 6 or newer). Node.js can be installed using your operating system’s package manager, or using a standalone installation.
- Install the Expo Command Line Interface (CLI), the tool for developing and building apps with Expo. Install by running
npm install -g expo-cli
in your Terminal.
The source code can be downloaded as a .zip
file from this repository, or cloned using git.
- The Expo Client is a mobile application used to view projects during development. Expo uses their servers to host your application without the need to build the app. The Expo Client can be found on the iOS App Store and Google Play Store by searching for “Expo Client.”
- Before running your app for the first time, make sure you are in the directory that contains your app, then run
npm install
in Terminal to install the required dependencies listed inpackage-lock.json
. - Run
expo start
. Expo will launch a dashboard in your browser. - In order to run the application on your phone, open an app that scans QR codes on your phone, and scan the code from the dashboard. Follow the generated link, and the application will open in the Expo Client app.
The app will Live-Reload every time an update to your code is made and saved.
To create a standalone binary of the Excelerate App for iOS:
- Run
expo build:ios
and follow the prompts. - Wait for the app to finish building. You can check on the build progress by running
expo build:status
. - The result will be a
.ipa
(iOS) file, which you can download with the link provided upon completion of the build.
If deploying to the Apple App Store, please see these instructions.
Our server is a separate component. Please see these instructions from our API repository for deploying the server.
If you wish to run the app in an iOS simulator, you will need an Apple device that runs macOS, and Xcode installed on that device.
- Install Xcode through the Apple App Store. The installation will take 30 minutes to 1 hour.
- Build your expo project with the simulator flag by running
expo build:ios -t simulator
. - Download the tarball with the link given upon completion. Unpack the tar.gz by running
tar -xvzf <your-app>.tar.gz
. The result will be a.app
file. - Open the iOS Simulator by running
open -a Simulator
. Wait for the simulator to boot. - Install the app to your iOS Simulator instance by running
xcrun simctl install booted <app path>
. Then use the Simulator as if it were your phone to open and use the app.
- Some macOS users will encounter issues if they do not have Watchman installed on their machine. Please see the Watchman install instructions.
- If the QR code does not scan on your phone, you can opt to “Send link with email/SMS” from the Expo dashboard generated in your computer’s browser.
- A build can fail due to missing fields in
app.json
. If the build fails, please see this documentation from Expo to ensure all fields are included in the file.