Skip to content

Dronesym is a platform for users to handle their drone fleets.

License

Notifications You must be signed in to change notification settings

StarkDrones/DroneSym

 
 

Repository files navigation

dronesym_logo

DroneSym

Build Status Gitter

Setting Up the Project

Prerequisites

  1. Install Node.js 6.x (or higher)
  2. Python version 2.7 (or higher)
  3. MongoDB version 3.6 (or higher)

Part 1 - Setting up the Node environment

  1. After cloning the repo navigate to dronesym-node folder
  2. Run npm install to pull the dependencies
  3. To avoid the error : exception in initAndListen: NonExistentPath: Data directory C:\data\db\ not found., terminating"(Windows) or "Error: dbpath (/data/db) doesn't exist"(Linux), create the dbpath as follows before running mongodb with replica set.
    For Windows Users :
    Create a folder C:\data\db
    For Linux Users :
    Run the following commands :
    To create the directory /data/db directory where data directory is in the root directory run:
    $  sudo mkdir -p /data/db
    As the owner and the group of '/data' directory are root, we need to change ownership of the directory to the current user to access it.
    We can change the ownership of the directory as follows:
    $  sudo chown -R username:group/data
    $  sudo chmod 0755 /data/db
    If one wants to change the MongoDB default data path i.e. "C:\data\db" (Windows) or "/data/db" (Linux) to some other directory then use:
    mongod --dbpath new_dbpath
    where new_dbpath is the path of the new data store directory. Ex : new_dbpath = /usr/local/var/mongodb-data
  4. Run mongod --replSet rs to start running Mongo with a Replica Set.
  5. Open another terminal without disturbing the terminal running mongod, then import the database with mongorestore --db dronesym dronedb/dronesym
  6. Run npm start to start the Node server Note: Make sure you have an admin account in the database under user collection. (Refer the schema in Models folder)

Part 2 - Setting up Python environment

  1. After cloning the repo, navigate to the folder dronesym-python
  2. Run sudo pip install -r requirements.txt to pull the dependencies
  3. Navigate to dronsym-python/flask-api/src folder
  4. Run python main.py to start the Flask server Note: Node server should be running when starting up the Flask server

Part 3 - Setting up the Angular front-end

Make sure that you have Node6.x or higher version installed

Install AngularCLI

$ npm install -g @angular/cli

Set environmental variable in ./dronesym-frontend/src/environments/environment.ts

Note: You will have to rename the example.environment.ts to environment.ts or create new file, for example by copying the example file:

$ cp src/environments/example.environment.ts src/environments/environment.ts`

Edit the environment.ts as follows

mapsApiKey: 'YOUR_GOOGLE_MAPS_API_KEY',
nodeApiURL: 'https://localhost:3000/dronesym/api/node',
feedURL: 'https://localhost:3000/feed'

Note: Dronesym Node server (./dronesym-node/) and DroneSym Flask server (./dronesym-python/flask-api/src) should be running before starting the frontend server_

Note: You should enable Google Maps JavaScript API before using API key

Starting the Angular development server

$ npm install
$ ng serve

Runing tests

1.Navigate to dronesym-node folder and run npm install http

2.Then run yarn test

Default login credentials

Admin

username: admin
password: admin

User

username: icarus
password: icarus

Part 4 - Running with Docker (Optional)

Checkout to docker branch

$ git checkout docker

Navigate to the root folder

Run

$ docker-compose up

Run Unit Tests Node

For node unit tests - both the flask server and node server have to be running.

Navigate to dronesym-node Run npm test

About

Dronesym is a platform for users to handle their drone fleets.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 41.9%
  • JavaScript 31.8%
  • HTML 12.3%
  • Python 9.7%
  • CSS 3.8%
  • Dockerfile 0.3%
  • Shell 0.2%