GithubHelp home page GithubHelp logo

omariosc / inertia Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 55.95 MB

Inertia is an E-scooter booking application created by 7 student from the University of Leeds.

Home Page: https://github.com/omariosc/inertia

Python 3.25% C# 23.14% Dockerfile 0.16% HTML 19.42% CSS 2.21% JavaScript 51.83%

inertia's Introduction

inertia

Code Style: Google

Inertia is an E-scooter booking application created by 7 student from the University of Leeds, Hashir Ali, Omar Choudhry, Mohamed Fakeih, Alexandru-Iulian Magan, Joshua Reiner, William Toon and Diansitan Zhuang.

Installation and Execution

Project Automation via Docker

The project contains a docker image for each component, and a docker-compose file that orchestrates these images to be run as services. The configuration creates three services: backend, fronted and nginx (a reverse proxy that redirects to the backend and frontend components), a persistent volume for the backend where the database is stored. This deployment is a production deployment, which means that all components run in release mode.

Prerequisites

# install docker (or replacement) and docker-compose

# using official docker convinience script
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

# using official docker-compose way of installation ()
curl -SL https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# Alternatively, on Fedora
# Installing podman as a drop in replacement for docker; and installing docker-compose from official repositories.
sudo dnf install podman docker-compose

Deployment

git clone https://github.com/omariosc/inertia
docker-compose up

Development Mode Components

Development Prerequisites

The project requires the following software packages in order to be built:

  • dotnet sdk
  • nodejs
  • npm
  • (optionally) doxygen for documentation generation
  • (optionally) python3 for running backend tests

The following commands show how these packages can be acquired on Fedora Linux (34, 35):

sudo dnf install dotnet npm nodejs python3 python3-pip doxygen

Backend

Running the backend in development mode can be done like so:

# assuming the current working directory is: inertia/backend
dotnet restore inertia.csproj
dotnet run
# the backend server will run automatically on the URL: https://localhost:7220

Running the tests

# assuming the current working directory is: inertia/backend-testing
pip3 install -r requirements.txt
python3 main.py https://localhost:7220

Building documentation

# assuming the current working directory is: inertia/backend
doxygen .doxygen

Frontend

Before running the frontend component, the file frontend/src/host.js must be modified to contain:

// Backend host IP address.
let host = "https://localhost:7220";
export default host;

This will ensure that the frontend will connect to the backend that is running in the development mode.

# assuming the current working directory is: inertia/frontend
npm install
npm start

Extras

Final Demonstration

The project marking guide is listed here with hyperlinks to all links in the Wiki. It is recommended for any assessors reading this to follow those hyperlinks to make sure everything listed in the specification has been included in the repository.

Interim Deliverables

The full interim deliverable specification list is listed here with hyperlinks to all links in the Wiki. It is recommended for any assessors reading this to follow those hyperlinks to make sure everything listed in the specification has been included in the repository.

Documentation

Documentation of the project is available here.

Frontend Documentation

Documentation of the frontend component is available when browsing through the artefacts of the jsdocs-documentation pipeline in CI/CD.

Backend Documentation

Documentation of the backend component is available here.

inertia's People

Contributors

omariosc avatar alexge50 avatar will-toon avatar montyzhuang avatar h-ali2 avatar mohammedfakeih avatar re1n avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.