aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: 1db7cfe231a2302ab798b6bf072544a424ab5ae4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
What is this?
=============
OrbitingYeti is a tool to write Nassi-Schneidermann diagrams. The name is just a
randomly generated codename.

What is a NS diagram?
---------------------
Nassi-Schneidermann diagrams aka structograms are a way to graphically represent
a structured program, which in modern terms are programs written with a
procedural paradigm. Structograms were first introduced in the '70 by Isaac
Nassi and Ben Schneiderman to replace flowcharts that were becoming
inadequate as they couldn't represent concepts like recursion.

Paper from 1973:
[http://www.cs.umd.edu/hcil/members/bshneiderman/nsd/1973.pdf](http://www.cs.umd.edu/hcil/members/bshneiderman/nsd/1973.pdf)

Why?
----
Because I wanted to practice C++ and try QT, and also because there aren't many
(good, non web based, cross platform) tools to draw these kind of diagrams.

Alternatives
------------
I don't have much time to work on this so here's an alternative.

Structorizer: 
[http://structorizer.fisch.lu/](http://structorizer.fisch.lu/)

![relevant xkcd](https://imgs.xkcd.com/comics/estimating_time.png)


How to build
============

```
$ git clone https://github.com/NaoPross/OrbitingYeti.git && cd OrbitingYeti  
$ mkdir -p build && cd build  
$ qmake .. && make   
```

Project
=======
TODO
----

- [x] Ui
- [ ] Draw diagrams
- [ ] Save / load diagrams
- [ ] Export diagrams to
    * [ ] PDF
    * [ ] TikZ
    * [ ] Svg
    * [ ] PNG
- [ ] Cross platform
- [ ] DEB / RPM Package

Coding style
------------
I use QtCreator's default coding style. 

For more details see:
[https://wiki.qt.io/Qt\_Coding_Style](https://wiki.qt.io/Qt_Coding_Style)

Git
---
If you want to contribute write commits in the imperative (default) form.