Skip to content

Contribution

Ahmed R. Awadallah edited this page Sep 19, 2017 · 5 revisions

If you want to contribute in this project, you will need to understand its components, and how it works

Directory Structure

Root

Contains starting program, configuration files and basic project documentation

Configuration Files

The following configuration files are located at the root directory:

  • .bettercodehub.yml - used by Better Code service to check the application for code quality
  • .gitignore - used to discard certain files from updating git repository
  • .gitlab-ci.yml - not used, was initially placed to integrate gitlab Continuous Integration service
  • .travis.yml - used by Travis CI
  • _config.yml - Layout to allow README.md to be converted into a static web page
  • requirements.txt - dependency list, non-standard packages required by the application

Documentation

Basic documentation required by github

  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • LICNESE
  • README.md

Entry File

The entry to this program is done through the file py_proj_man.py

docs

Contains more in depth documentation as a form of markdown files

PyProjManCore

Contains internal classes used to control a project

task.py

This file contains the Task class, the building block of a project. should we replace this entity with a database entity instead?

proj_man.py

This file contains ProjMan class; It can be looked at as a project containing one entry task, and contains some project housekeeping tasks

helpers.py

Helper static functions used by different classes

time_element.py

TimeElement class, is used to keep track of actual and estimated time frames of a task or a project should we replace this entity with a database entity instead?

PyProjManUI

Contains user interface related files and directories

data/parser.json

contains definition of the parser entities;

  • keywords
  • error messages
  • help strings

parser.py

We use a parser to read user input from the interactive command line interface. syntax and keywords are defined in a configuration file named parser.json under data/ directory

ui_helper.py

UnitTesting

Contains unit tests for different components of the system