MapDesigner is a web application that provides a convenient way to create and distribute interactive maps. A feature of MapDesigner is the creation of scalable maps from custom images that do not have a geographic reference.
These instructions will provide you with an easy way to run a project.
Install VirtualBox and Vagrant.
Add the laravel/homestead box to your Vagrant
vagrant box add laravel/homestead
Install Homestead by cloning the repository onto your host machine
git clone https://github.com/laravel/homestead.git ~/Homestead
Create Homestead.yaml config file
cd ~/Homestead
// Mac / Linux...
bash init.sh
// Windows...
init.bat
Edit Homestead.yaml config
// Make sure IP is set to
ip: "192.168.10.10"
// Commented
#authorize: ~/.ssh/id_rsa.pub
#keys:
# - ~/.ssh/id_rsa
// Change
folders:
- map: ~/code
to: /home/vagrant/code
sites:
- map: homestead.test
to: /home/vagrant/code/public
// To
folders:
- map: ~/Source/MapDesigner
to: /home/vagrant/MapDesigner
sites:
- map: MapDesigner.test
to: /home/vagrant/MapDesigner/public
Run and connect to Homestead
vagrant up
vagrant ssh
Get project
git clone https://github.com/misterobot404/MapDesigner.git
Update dependencies
cd ~/MapDesigner/
composer update
npm install -g npm
npm install
npm update
Run the migration to change the application database schema
php artisan migrate
php artisan passport:install
Setup .env config for your environment.
The project is ready for launch and testing.
Enable using precompressed files
sudo nano /etc/nginx/nginx.conf
// Add to http context
gzip_static on;
gzip_min_length 1400;
gzip_comp_level 9;
Enable caching
sudo nano /etc/nginx/sites-available/MapDesigner.test
// Add caching to the location
// Example
location = /favicon.ico {
expires 7d;
add_header Cache-Control "public, no-transform";
}
Run Homestead and application on IP 192.168.10.10 (initial startup takes longer)
cd ~/Homestead
vagrant up
To connect to Homestead (for change the environment settings)
vagrant ssh
Shut down Homestead and application
vagrant halt
Backend
- Homestead - official Vagrant box pre-packaged development environment
- Laravel - RESTful API service. API response format is HTTP status + JSON based on the JSend specification
Frontend
- Vue.js - Single-page application
- Vue Router - Routing
- Vuex - State management
- Vuetify - UI Library
- Leaflet - Open-source JavaScript library for interactive maps
- Alexander Zakusilo - Programmer - misterobot404
- IT management KNASTU - Supporting - knastu.ru
Supported all browsers except IE old versions.
If you discover a security vulnerability within MapHelper, please send an e-mail to misterobot via [email protected]. All security vulnerabilities will be promptly addressed.
MapDesigner is commercial software. No license.