Erio-Harrison / SAVMS

Smart Autonomous Vehicle Management System
Apache License 2.0
11 stars 4 forks source link

Smart Autonomous Vehicle Management System

Architecture

Table of Contents

Installation

This project uses C++ for core algorithms and high-performance computing, and Java for application layer development.

Prerequisites

Before installation, ensure you have the following installed:

  1. MySQL (Community Edition)

  2. Node.js

  3. CMake

  4. MinGW (for Windows)

Building the Core Library

To build the core C++ library:

cd engine
mkdir build
cd build
cmake ..
make

This will generate a shared library named:

Setting up the Frontend

Windows

  1. Navigate to the frontend directory
  2. If you encounter issues with vite, delete package-lock.json and reinstall dependencies:
    npm install
  3. Run the development server:
    npm run dev

Ubuntu

  1. Install nvm:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  2. Reload the shell configuration:

    source ~/.bashrc
  3. Install the latest LTS version of Node.js:

    nvm install --lts
  4. Use the newly installed Node.js:

    nvm use --lts
  5. Add Yarn's official repository and install the latest version:

    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
    sudo apt update
    sudo apt install yarn
  6. Navigate to the frontend directory and install dependencies:

    cd frontend
    yarn install
  7. Run the development server:

    yarn dev

Setting up the Backend

  1. Navigate to the engine directory
  2. Check the CMakeLists.txt file and ensure file directories are correct
  3. Build the project:
    mkdir build
    cd build
    cmake -G "MinGW Makefiles" ..
    mingw32-make

Usage

After installing all the necessary components:

  1. Run the application's main function.
  2. Start the frontend interface.
  3. The system is now ready to accept network connections from client devices.

Contributing

To contribute to this project:

  1. Submit your code changes.
  2. Create a pull request.
  3. Wait for the review process to complete.

License

This project is licensed under the Apache License, Version 2.0. You may obtain a copy of the License at:

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.