kopia lustrzana https://github.com/OpenDroneMap/WebODM
Merge branch 'master' of https://github.com/OpenDroneMap/WebODM
commit
bf75d1f312
64
README.md
64
README.md
|
@ -2,9 +2,69 @@
|
||||||
|
|
||||||
A web interface for [OpenDroneMap](https://github.com/OpenDroneMap/OpenDroneMap).
|
A web interface for [OpenDroneMap](https://github.com/OpenDroneMap/OpenDroneMap).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
This is currently a work in progress! See the Roadmap below.
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
The quickest way to get started is by using Docker.
|
||||||
|
|
||||||
|
* From the Docker Quickstart Terminal (Windows / OSX) or from the command line (Linux) type:
|
||||||
|
```
|
||||||
|
git clone https://github.com/OpenDroneMap/WebODM
|
||||||
|
cd WebODM
|
||||||
|
docker-compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
* If you're on Windows/OSX, find the IP of your Docker machine by running this command from your Docker Quickstart Terminal:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker-machine ip
|
||||||
|
```
|
||||||
|
|
||||||
|
Linux users can connect to 127.0.0.1.
|
||||||
|
|
||||||
|
* Open a Web Browser to `http://<yourDockerMachineIp>:8000`
|
||||||
|
* Log in with the default credentials: "admin:admin"
|
||||||
|
|
||||||
|
## Run it natively
|
||||||
|
|
||||||
|
If you want to run WebODM natively, you will need to install:
|
||||||
|
* PostgreSQL (>= 9.5)
|
||||||
|
* Python 2.7
|
||||||
|
|
||||||
|
Then these steps should be sufficient to get you up and running:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/OpenDroneMap/WebODM
|
||||||
|
```
|
||||||
|
|
||||||
|
Create a `WebODM\webodm\local_settings.py` file containing:
|
||||||
|
|
||||||
|
```
|
||||||
|
DATABASES = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.postgresql',
|
||||||
|
'NAME': 'webodm_dev',
|
||||||
|
'USER': 'postgres',
|
||||||
|
'PASSWORD': 'postgres',
|
||||||
|
'HOST': 'localhost',
|
||||||
|
'PORT': '5432',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Then:
|
||||||
|
|
||||||
|
```
|
||||||
|
pip install -r requirements.txt
|
||||||
|
chmod +x start.sh && ./start.sh
|
||||||
|
```
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
- [X] User Registration / Authentication
|
- [X] User Registration / Authentication
|
||||||
- [ ] UI mockup
|
- [X] UI mockup
|
||||||
- [ ] Task Processing
|
- [ ] Task Processing
|
||||||
- [ ] Model display (using Cesium/Leaflet) for both 2D and 3D outputs.
|
- [ ] Model display (using Cesium/Leaflet) for both 2D and 3D outputs.
|
||||||
- [ ] Cluster management and setup.
|
- [ ] Cluster management and setup.
|
||||||
|
@ -28,4 +88,4 @@ A web interface for [OpenDroneMap](https://github.com/OpenDroneMap/OpenDroneMap)
|
||||||
|
|
||||||
## Work in progress
|
## Work in progress
|
||||||
|
|
||||||
We will add more information to this document soon (including information on how to get started).
|
We will add more information to this document soon.
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
- model: app.project
|
||||||
|
pk: 1
|
||||||
|
fields: {owner: 2, name: Test_Project2, description: This is a test project, created_at: ! '2016-09-12
|
||||||
|
10:08:39.045372+00:00'}
|
||||||
|
- model: app.project
|
||||||
|
pk: 2
|
||||||
|
fields: {owner: 1, name: Test_Project1, description: This is a test project, created_at: ! '2016-09-12
|
||||||
|
10:08:58.533742+00:00'}
|
||||||
|
- model: app.project
|
||||||
|
pk: 3
|
||||||
|
fields: {owner: 1, name: Test_Project3, description: This is a test project, created_at: ! '2016-09-12
|
||||||
|
10:11:31.357885+00:00'}
|
|
@ -0,0 +1,32 @@
|
||||||
|
- model: auth.user
|
||||||
|
pk: 1
|
||||||
|
fields:
|
||||||
|
# password: test1234
|
||||||
|
password: pbkdf2_sha256$30000$pFwIz88hEEZ4$siNaZefZB3bb0DlemWNOkj6+tCq3I3LW+IgVw5VsRmE=
|
||||||
|
last_login: null
|
||||||
|
is_superuser: true
|
||||||
|
username: testuser
|
||||||
|
first_name: ''
|
||||||
|
last_name: ''
|
||||||
|
email: test@mail.com
|
||||||
|
is_staff: true
|
||||||
|
is_active: true
|
||||||
|
date_joined: 2016-09-11 22:26:52.582858+00:00
|
||||||
|
groups: []
|
||||||
|
user_permissions: []
|
||||||
|
- model: auth.user
|
||||||
|
pk: 2
|
||||||
|
fields:
|
||||||
|
# password: test1234
|
||||||
|
password: pbkdf2_sha256$30000$pFwIz88hEEZ4$siNaZefZB3bb0DlemWNOkj6+tCq3I3LW+IgVw5VsRmE=
|
||||||
|
last_login: null
|
||||||
|
is_superuser: true
|
||||||
|
username: testuser2
|
||||||
|
first_name: ''
|
||||||
|
last_name: ''
|
||||||
|
email: test2@mail.com
|
||||||
|
is_staff: true
|
||||||
|
is_active: true
|
||||||
|
date_joined: 2016-09-11 22:26:52.582858+00:00
|
||||||
|
groups: []
|
||||||
|
user_permissions: []
|
17
app/tests.py
17
app/tests.py
|
@ -3,24 +3,25 @@ from django.test import TestCase
|
||||||
from django.contrib.auth.models import User, Group
|
from django.contrib.auth.models import User, Group
|
||||||
from django.test import Client
|
from django.test import Client
|
||||||
|
|
||||||
|
from .models import Project,Task
|
||||||
|
|
||||||
# Create your tests here.
|
# Create your tests here.
|
||||||
|
|
||||||
class TestUser(TestCase):
|
class TestUser(TestCase):
|
||||||
|
|
||||||
|
fixtures = ['test_users', ]
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.credentials = {
|
self.credentials = {
|
||||||
'username': 'testuser',
|
'username': 'testuser',
|
||||||
'password': 'secret',
|
'password': 'test1234',
|
||||||
'email': 'test@mail.com'}
|
'email': 'test@mail.com'}
|
||||||
self.u = User.objects.create_user(
|
|
||||||
username=self.credentials['username'],
|
|
||||||
email=self.credentials['email'],
|
|
||||||
password=self.credentials['password'],
|
|
||||||
is_superuser=True
|
|
||||||
|
|
||||||
)
|
# Create a test Group
|
||||||
my_group, created = Group.objects.get_or_create(name='test_group')
|
my_group, created = Group.objects.get_or_create(name='test_group')
|
||||||
self.u.groups.add(my_group)
|
|
||||||
|
# Add user to test Group
|
||||||
|
User.objects.get(pk=1).groups.add(my_group)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
pass
|
pass
|
||||||
|
|
Ładowanie…
Reference in New Issue