Below are instructions for the compilation of attempts at designing and implementing ideas for a Start-Up which was in development from July 2023 to November 2023, that ultimately didn't bear any fruit. However, it helped all of us involved to learn a lot, and maybe these implementation files will help someone else as well.
Download and install the Arduino IDE from here.
To then properly work with the current working code, the following libraries are required:
- Adafruit NeoPixel Library
- FireBase ESP Client Library
- The Arduino ESP32 library board management.
All the required documentation for the above libraries can be found in their respective GitHub repositories.
If something still isn't working on the side of the controller, useful things to try include installing the serial drivers and the dev kit package.
For future development, a look at the BLE library might be useful.
If we switch to a different controller, the above libraries might not be required anymore and this file would require an update.
The React native app is built using Expo. For all the requirements to run and develop the app, a simple npm install
should suffice in the ./TabTeacher_App
directory. If that doesn't suffice the steps on this link should be followed.
In addition EAS should be installed. To do so, run
npm install -g eas-cli
If you're running this on a Linux machine, you'll probably need to prefix the above command with sudo
.
This is used for publishing the application to the expo application during the development process. Some additional info is available in the Expo documentation.
The following instructions are to be run in the ./TabTeacher_App
directory.
When you want to run the app in dev mode for the first time on any device, you first have to install the dev app on that device. To do so, run
eas build:run -p android
The development can be run locally on an emulator or on a physical device using
npx expo start -c --tunnel
The -c
flag clears the cache, while the --tunnel
flag ensures a more stable connection to the physical device, at least during my testing. Both flags are optional.
To actually connect a physical device, I used ADB. Basically the command adb devices
is used to find the device name, which is then used to create a debugging link using the command adb -s <device name> reverse tcp:8081 tcp:8081
. This should ensure a stable connection to the device (connected via USB to the computer).
To develop on a physical device not connected to the computer, first, you should install the Expo Go app for either Apple or Android.
To access the development application through Expo Go, a login has been made using the development account. The credentials are available in the credentials file. The account is also available on the Expo website.
This same account is used to upload the development application to the Expo infrastructure through eas login
, followed by eas update
. If these commands don't work, either run them with the npx ...
command or enter the npx
environment by simply typing that command.
If new libraries are required to enable new features, they should be installed using
npx expo install <library>
As of right now the development is focused on one branch. This should be expanded upon. We can talk about this in the next meeting sometime soon.
Also all of the development should be logged in the ./CHANGELOG.md
file in a structured manner. Ideally in the format:
## [date] - [author] - [branch] - [version]
### Updates
* [feature 1]
* [feature 2]
* ...
### Bug Fixes
* [bug fix 1]
* ...
### Known Issues
* [issue 1]
* ...
There is another file ./DEVELOPMENT.md
which contains some TODOs and completed tasks/features. This was own personal log, and I will update it as we go/as need be.
This repository is redacted and can be used by anyone "as-is" under the MIT license.