Giter VIP home page Giter VIP logo

oudini's Introduction

Quick install / setup

LaTeX generation demo

  • [WIP] Install a LaTeX generator (ATM MikTeX + pdflatex is supported)

  • Download the repository

  • Open the demo project in demo/project1 folder

  • [WIP] in main.py, edit the path to your LaTeX generator

  • Run main.py

Note: if using MikTeX, additionnal LaTeX packages will have to be installed. [WIP] ATM MikTeX installer is disabled when running the MiktexCompiler class - run the pdflatex command without the -disable-installer option.

OuDini

What is OuDini ?

OuDini is a Python framework designed to allow a no-nonesense management of complex functionnal requirement specifications:

  • Redaction
  • Inter-document links (V-cycle requirements, etc.)
  • Template-based document generation for the specification documents, dependency matrices, etc.
  • Versioning, including baselining
  • Maintenance
  • [TBD] Reviews

Why OuDini ?

OuDini was born from the frustration created by proprietary tools such as IBM Doors. Bloated, expensive, awkward to use and difficult to extend, those tools are often a poor solution to the problems usually seen in large projects where specifications are layered into dozen of documents:

  • Each specification document spans hundred of requirements
  • Each document must be precisely versionned, and the differences between versions must be easily analysed
  • Requirements are written by multiple authors, and must be easily merged, proof-read and reviewed
  • Links between documents spans in the thousands. Tracability must be guaranteed - including links that are missing, obsolete, useless (one-to-many and many-to-one)...
  • Document generation must be reasonably fast, reproductible, easily maintained, and template based
  • Documents must be accessible concurently without network access, license limitations (be them concurent users or a date), from any modern OS

Furthermore, because each project has specific needs, the database and its tools must be easily extendable to add custom functionalities. For instance, the tools must be able to interact with both testing / validation frameworks (in Python, etc.), CI automation systems (Jenkins, etc.), code generation (protocol requirements in ASN.1, etc.), audit tools, spreadsheet applications (Excel, CSVs, etc.), and so on.

I mean, how hard can it possibly be?

Thus, several criteria were specifically outlined that a proof of concept - that is, OuDini - should have:

  • Open source with a truly free license (MIT)
    • Just use it. No licensing servers nonesense.
  • Developed as a modern Python 3 package
    • Ease of extension by any developer (because whatever they need to do, there's a module for that)
    • Can run on any system with a Python interpreter
    • Lightweight
  • Uses a XML-based file database
    • Human searchable, readable and writable
    • Easily parsed by third-party applications, or maintenance scripts
    • Works nicely with CVS such as Git
  • Generic generation / rendering engine
    • By default, a LaTeX generator is provided
  • Multi-documents interactions
    • Links, matrices, etc.

Hence, OuDini was born.

oudini's People

Contributors

ccraf avatar giganon avatar

Watchers

 avatar  avatar  avatar

Forkers

ccraf

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.