Skip to content

daavllc/Project-Management

Repository files navigation

Project Management

Easy to use GUI/CUI for managing projects

Purpose:

In order to effectively manage projects within an organization, details about each project, hours and time invested, it’s contributions, and contributors must be kept. This will allow DAAV, LLC to function more efficiently, by ensuring details about all of our projects are well maintained. We hope to streamline and automate this process as much as possible, to spend more time developing, instead of describing what we’ve developed.

Details:

  • Project lead: Anonoei
  • Language: Python 3.10
  • License: GPLv3
  • Dependancies: dearpygui

Current status/roadmap:

  • Profit (just kidding it's FOSS, always)
  • (Possible) External integrations?
  • (Possible) Web UI
  • Releases
  • Documentation
    • In-depth polished
    • Initial
  • Updater
  • User Interface
    • Saveable settings
    • CUI
      • Quality-of-life additions
    • GUI
      • Other quality-of-life additions
      • Polished Graphical User Interface (dearpygui)
      • Search for projects/contributions/contributors
      • GUI Project editor
      • GUI Contribution editor
      • GUI Contributor editor
      • GUI Project viewer
      • GUI Contribution viewer
      • GUI Contributor viewer
  • Get data by UUID instead of name
  • Initial working implementation
  • Project import/export
  • Interface for accessing each class and it’s data
  • Project Header class
  • Contribution class
  • Contributor class

File Structure

Project files are structured as follows:

  • Projects
    • Project UUID
      • header.inf
      • versions.csv
      • Contributions
        • Contribution UUID
          • contributors.csv
          • info.inf
          • progress.csv
      • Contributors
        • Contributor UUID
          • data.csv
          • info.inf

This structure was chosen because contributors are a subset of the project, not just the contribution. However, each contribution keeps track of it's contributors, and for a contributor to 'Push' an addition a contribution must be supplied.

Projects

 A project contains various information:

  • Name
  • Description/goal of project
  • Project lead/originator
  • Generated:
    • Creation Date (modifiable)
    • Version - Release.Major.Minor - #.#.# - from contribution version increase
    • Time invested (total) - automatic from contribution data
    • Money Invested (total) - automatic from contribution data
    • Number of contributions - from folder
    • Number of contributors - from folder
  • Name
  • Description/goal of contribution
  • Contribution lead/originator
  • Version increase - #.#.#
  • Contributors - list of contributors
  • Progress - list of progress increase and date
  • Generated:
    • Creation Date (modifiable)
    • Contribution UUID
    • Current progress (%)
    • Contribution Number(1, 2, ...) - from project contributions (modifiable)
    • Time invested (total) - from contributor data
    • Money invested (total) - from contributor data
  • Name
  • URL
  • Additions
    • Hours
    • Date
    • Description of addition
    • Contribution UUID
  • Generated
    • Date began working on project (modifiable)
    • Contributor UUID       

Installation

Note: currently there are no releases, so it must be downloaded from source. Officially, only windows is supported. Only some feature specific code is Windows-only (updates, and reloads).

Download from source

  1. git clone https://github.com/daavofficial/Project-Management.git
  2. Open 'Project-Management' folder.
  3. Run Win-Launch.bat
    • This launches launch.ps1 which performs various functions
      1. Checks PATH variable for Python310 (if not found will prompt you)
      2. Launches Setup.py to check python version and prompt for required packages
      3. Launches main.py
      • Prompt for what UI to use
      1. Allows reloading/error handling and assists with updates
  4. Type 1 or 2 to select CUI, or the GUI respectively
  5. If your version is behind the version on GitHub, you will be prompted for an update

License

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.