Milo Code Database - kickstart your projects easily


  • Moderators

    Hi Qt!

    We've just released Milo Code Database: a set of small, useful helper classes
    for Qt, easy to include and use - plus a scaffolding for new projects we call
    the New Project Template. At Milo, we use them in many of our projects
    to speed up development, and we figured they may be useful to the community
    as well.

    MCDB comes in 2 forms:

    1. Installer - which helps to set up a new project in just a few seconds (with
      scaffolding for Qt app, documentation, CI integration, versioning, config,
      logger, and more). It can even set up a git repo and do the initial commit for
      you :-)
    2. Set of independent git repos, easy to clone / download / use as submodule.

    So, what are the goodies?

    • New project template - template for all new Qt projects (QML and Widgets).
      Contains a scaffolding for Qt app with documentation, tests, resources etc.
    • MScripts - scripts for integration with GitLab CI, Mattermost, versioning
      scripts for all platforms (including git SHA), and more
    • MConfig - a small class which helps storing user app settings and configuration
    • MLog - small but powerful log class, with full categorized logging support
    • MRestAPI - handy set of base classes for talking with REST web servers
    • MBarcodeScanner - small helper class that allows to scan barcodes and QR codes
      using QZXing library
    • MCharts - implements some simple yet meaningful and eye friendly charts to
      display data
    • MSentry - remote logger support (Sentry/ Raven). Easy to turn on and off, just
      with a config switch
    • MCrypto - AES module, containing simple and convenient API, based on OpenSSL
      and it has a fallback if OSSL is not available

    License?

    MIT. We are actually open to other licenses, too, if somebody thinks that MIT
    is not proper in this case.

    Where can I get it?

    MCDB installers (Linux and Windows): https://seafile.milosolutions.com/d/2c50614e1e/
    MCDB docs are available online: https://docs.milosolutions.com/milo-code-db/main/
    And all submodules are listed and documented here: https://docs.milosolutions.com/milo-code-db/main/subprojects.html
    Each module's source code is on GitHub: https://github.com/milosolutions

    Contributing

    We're open to any comments, critique, pull requests etc. We can also help if
    any piece of the documentation is unclear. It's all being constantly updated and
    we're happy to get some external input to make this even more useful to everybody.

    Feel free to reach me at sierdzio@gmail.com or more officially at ppm-qt@milosolutions.com

    Cheerio,
    sierdzio


  • Qt Champions 2016

    Oh that is very cool !
    Thank you for sharing.

    I gotta try MCharts :)


  • Qt Champions 2016

    Thanks for sharing, it's interesting stuff, I glanced over the REST classes.
    I have a question, is this intended to be included in a project and used as is, or pre-compiled in a library and then linked to a project?


  • Moderators

    @kshegunov said in Milo Code Database - kickstart your projects easily:

    Thanks for sharing, it's interesting stuff, I glanced over the REST classes.
    I have a question, is this intended to be included in a project and used as is, or pre-compiled in a library and then linked to a project?

    Included as-is (it should be enough to add mrestapi.pri to your .pro file), and the code you can either copy or include as git submodule. I thought about making libs out of them, but the additional hassle of managing LIBS, deployment etc. automatically in qmake made me shy away from that (I'm not stopping anybody from making the modules into libraries, though). And this way the inclusion is very easy, and everybody is free to modify the classes if they want to.

    Feel free to try the installer, it creates a ready-made Qt project with all modules already plugged into the .pro. Then it's easy to see how it fits together in Qt Creator.


  • Qt Champions 2016

    @sierdzio said in Milo Code Database - kickstart your projects easily:

    I thought about making libs out of them, but the additional hassle of managing LIBS, deployment etc. automatically in qmake made me shy away from that (I'm not stopping anybody from making the modules into libraries, though).

    You may want to consider making a couple of Qt modules, that way Qt's infrastructure will take care of all that.

    Feel free to try the installer

    I will try it out when time permits.


  • Moderators

    True, Qt module is an option. Then all that was needed would be Qt += mcrypto or something.


  • Qt Champions 2016

    Awesome. It is very surprising to find a Bar Code scanner example in your code database.

    Will you be interested to provide your Code Database as a Qt Creator Wizard? So that user could create a project by "File -> New File or Project -> Milo Code Database -> xxxxx".

    I just released a script to convert a existing project into Qt Creator New Project Wizard, that could make it easier to do so.
    e-fever/qtcwizard: Convert a Project into a Custom Wizard for Qt Creator


  • Moderators

    @benlau said in Milo Code Database - kickstart your projects easily:

    Awesome. It is very surprising to find a Bar Code scanner example in your code database.

    Will you be interested to provide your Code Database as a Qt Creator Wizard? So that user could create a project by "File -> New File or Project -> Milo Code Database -> xxxxx".

    Yes, it is on my todo list. I'm temporarily buried under other tasks, but I will get to this eventually.

    I just released a script to convert a existing project into Qt Creator New Project Wizard, that could make it easier to do so.
    e-fever/qtcwizard: Convert a Project into a Custom Wizard for Qt Creator

    Wow, great! That should help a lot. Thanks!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.