d#+AUTHOR: Benjamin Zaporzan
Mappt is an application to build maps with intelligent routing capabilitites
- [ ] Begin work on the design
- [ ] Decide on a database schema
- [ ] Develop JSON Sample specification
- [ ] Develop Design for frontend application
- name
- The name of our current map that we’d like to traverse. ex. “Ohio Regional Hospital” if we were developing a layout for that particular hospital
- maps
- a dictionary list consisting of all of the maps that make
up the current application.
- name
- The name of the particular map within the set of maps
- description
- a unique description describing info about this map. ex. First floor of shuniah building
- mapid
- A GUID to uniquely identify this map
- points
- Traversal points to represent within Map Units.
- pointid
- A GUID to uniquely identify this point
- x
- the x dimension for the given point
- y
- the y dimension for the given point
- z
- the z dimension for the given point
- images
- maps consist of images.
- ref
- A reference to the location of the given file. Supported formats have not been determined
- scale
- The scale of the given image in order to determine it’s representation in Map Units.
- position
- The position of the image relative to the dimensions of the map.
- rotation
- the rotation of the given image relative to the map. Expressed in quaternions.
- dimensions
- The dimensions of the given map. This determines how many units the map makes up in Map Units.
- links
- links make up the connections between points in the
given map. It forms a relation between them.
- first
- Guid representing the first point
- second
- Guid representing the second point
- entrances
- the relationship between two points between any two
given maps. They can be thought of as ‘global’
links
- first
- Guid representing the first point
- second
- Guid representing the second point
mappt : {
name : ":String",
maps : [{
name : ":String",
description : ":String",
mapid : ":Guid",
points : [{
pointid : ":Guid",
x : ":Float",
y : ":Float",
z : ":Float",
tags : {
":String" : ":Any",
...
},
}],
images : [{
ref : ":FileUri",
scale : [:Float, :Float, :Float],
position : [:Float, :Float, :Float],
rotation : [:Float, :Float, :Float, :Float],
}],
dimensions : [:Float, :Float, :Float],
links : [{
first : ":Guid",
second : ":Guid",
}],
}],
entrances : [{
first : ":Guid",
second : ":Guid",
}],
}
<mappt>
<name>Example</name>
<maps>
<map mapid="0000-0000-0000-0000">
<name>Map Name</name>
<description>Here is a description</description>
<points>
<point pointid="0000-0000-0000-0000">
<position x="0.0" y="0.0" z="0.0"></position>
<tags>
<tag key="someKey" value="someValue"></tag>
</tags>
</point>
</points>
<images>
<image ref="./somefile">
<scale x="0.0" y="0.0" z="0.0"></scale>
<position x="0.0" y="0.0" z="0.0"></position>
<rotation i="0.0" j="0.0" z="0.0" w="0.0"></rotation>
</image>
</images>
<dimensions>
<position x="0.0" y="0.0" z="0.0"></position>
</dimensions>
<links>
<link first="0000-0000-0000-0000" second="0000-0000-0000-0000"></link>
</links>
</map>
</maps>
<entrances>
<entrance first="0000-0000-0000-0000" second="0000-0000-0000-0000"></entrance>
</entrances>
</mappt>
- using clojure, should I use clojurescript for the frontend, or stick to javascript?
- make sure that the development environment is painless to work with. Who wants to spend hours working in an environment that is annoying to work in?
Need a protocol for manipulating the canvas. The main advantage to doing it this way, is to separate out drawing logic from the data