Software project manager


Introduction

I am looking for a way to standardize my software projects.

It is easy to create and maintain software projects with IDE such as visual studio, eclipse etc… Those IDE are great but they also come with drawbacks.

  • Slow when dealing with a big system such as embedded system with the entire OS to maintain
  • High memory usage — this is an issue but not a big deal for a modern PC
  • OS dependent — Visual Studio bind to Windows. Although the latest VS can develop project remotely through Windows on Linux.
  • Not easy to integrate — This is debatable. One of the best stuff you get from IDE is that it shipped with integrations over different tools. For example: version control, debugger, auto-complete, code navigation etc… The issue only comes when you want to add something that is not yet supported.

Due to those limitations, I decided to create a simple tool helping me to generate those software projects for me.

This tool is not suit for any projects but only for:

  • C++ — console application and QT application
  • Python — restful application, grpc application, console application
  • K8s
  • Gitlab CI/CD
  • Docker container for running and developing environment
  • Quantconnect projects

The tool

Project manager on github

Python project structure


 

  • chart
    • This is a folder containing deployment information. The deployment tool is k8s.
  • dockerEnv
    • This is a folder for docker container perparation.
    • We have development and running enviroment. They are kept in different dockerfiles.
  • dockerEnv/dev
    • There is a script to manage the dev container under this folder
  • python_showcases (your project name)
    • There are 2 subdirectory. One is used to store application and the other is used to store libraries.
  • scripts
    • That is used for starting servers withint the docker container. It is useful when we deploy our application to remote servers.
  • tests
    • All the test cases should be saved here. We already included the testing phase in the CI/CD pipeline supported by gitlab.
  • Doxyfile
    • This is used for documentation generation
  • diagrams
    • Here we store puml files for diagrams generation
  • poetry.lock, pyproject.toml
    • We use poetry as a package manager.

 

Comments