amosproj / amos2021ss07-bike-nest

MIT License
1 stars 0 forks source link
no07 ss2021

Bikenest Project (AMOS SS 2021)

Project License

Welcome to the Bikenest Repository. This project is working on a bicycle parking app. Imagine a locked cage for bicycles. Users can book places for their own bikes in it. Account creation, reservations, payment and locking and unlocking of the cage + their bike spaces inside should be possible via the app. The goal is a working Proof-of-Concept from Frontend to Backend, including the process of locking/unlocking using real hardware.

Documentation

Technical Documentation | Software Architecture | User Documentation | API Documentation

AMOS Project

The project is created as a work as part of a student project, carried out by Prof. Riehle at the Friedrich-Alexander University of Erlangen-Nuremberg.

General

We go for a standard Frontend/Backend approach where the Backend serves the Frontend with data. The main purpose of the Frontend is booking spots inside a Bikenest and accessing them. To ensure communication between the Backend and Hardware we develop a small server application that will be deployed on a RaspberryPi.

The folder structure is as follows:

How to setup

  1. Download a release or the current project repository.
  2. Build the Backend Project (for detailed instructions visit Backend)
  3. Install dependencies of the raspi-server Project (for detailed instructions have a look at the README.md in the raspi-server directory)
  4. Build the Frontend (React) Expo

How to run the project after initial setup.

  1. Backend: Navigate into the Backend directory. Run the run-release.bat (or run-release.sh for UNIX based systems).
  2. Frontend: Navigate into the code directory and install the dependencies needed via yarn install. After everything is set up, start the Expo CLI via yarn start. Download the Expo Go App in your appstore and scan the given QR-code with it or use an emulator on your pc.
  3. Raspi-Server: The flask server can be started by running python app.py. Note: the server will try to communicate with the Bikenest Hardware via a serial connection. Without access to the hardware, the application will not work correctly!