Sib007 / intro_machine_learning_using_python

0 stars 0 forks source link

Project management tool for a translation agency

Introduction

Every translation agency needs to keep track of its past and ongoing projects, just like any company. However, when projects start to accumulate, it may become rather difficult to keep an overview. In addition, large tables or endless database entries do not make for comfortable reading. This tool enables project managers to quickly get an overview of their translation projects and all their information, as a user-friendly and informative text, as well as retrieving specific information.

Files in this repository

Composition of the project management tool

Basic version

The tool consists of a Python class called Project. That class creates objects with the following attributes:

The class also has three methods:

The script is documented with docstrings and has an argparse parser, so it can be run directly from the command line.

Expanded version

The expanded version of the script has all the features the basic version has, except for the argparse parser (due to time constraints). In addition, it has some extra features that the basic version does not have.

Next to the Project class, the expanded tool has a Freelancer class to turn the entries of the freelancer database found in freelancers_db.json into objects. The attributes of that class are the same as the keys in that list of dictionaries. The class also has two methods, namely:

Due to time constraints, this class is not documented with docstrings.

This added Freelancer class allows project managers to not only get an overview of their project's information, but to link the project database and the freelancer database to easily look up information about the freelancers assigned to a project (say, if they're late to deliver or something changes in the project organisation and the PM wants to contact them via e-mail).

How to use the project management tool

Basic version

You can run the basic version of the script directly from the command line and manually feed it the project information, using:

python project-management-tool_basic.py "title" "client" "source" "target" words "YYYY-MM-DD" "YYYY-MM-DD" price tm

(The placeholders need to be replaced by the actual project information, check above that you input all the information as the right variable type, otherwise you will get an error message asking you to use the correct type.)

Expanded version

Because no argparse parser was programmed yet for this version of the tool, it needs to be opened rather than being run from the command line. You can open project-management-tool_expanded.ipynb with Jupyter Notebooks, or project-management-tool_expanded.md with, for example, VS Code. For more information about how to use these files, open them and go through the tutorial in them. Unlike with the basic version run from the command line, this version of the tool allows files as input to instantiate objects. It is possible to print the information of all the projects in one go, using projects_db.json, or to link the Freelancer and Project class for a single project, using freelancers_db.json and one of the separate project files.

Future features

Due to time constraints, several features could not be implemented, which will be added in future updates: