engineervix / zm-dpa

The Zambia Data Protection Act, 2021 – powered by Material for MkDocs
https://dpa.pages.dev
GNU Free Documentation License v1.3
1 stars 0 forks source link

The Data Protection Act, 2021

An Act to provide an effective system for the use and protection of personal data; regulate the collection, use, transmission, storage and otherwise processing of personal data; establish the Office of the Data Protection Commissioner and provide for its functions; the registration of data controllers and licencing of data auditors; provide for the duties of data controllers and data processors; provide for the rights of data subjects; and provide for matters connected with, or incidental to, the foregoing.

Source: https://www.parliament.gov.zm/node/8853

Continuous Integration python3 Commitizen friendly Conventional Changelog Conventional Commits

Introduction

Powered by Material for MkDocs, this project transforms a traditionally dense and difficult to navigate PDF of the aforementioned Act into an easily navigable, searchable, and visually appealing online resource.

Why this project exists

Navigating legislative documents can be daunting and often results in a headache. This project was born out of the desire to make the process of understanding the Act more approachable and less painful.

How the content was put together

This is the approach I took:

  1. Download the original pdf from the National Assembly of Zambia website.

  2. Use Adobe Acrobat Online PDF to Word Converter to convert the pdf to a docx file.

  3. Use pandoc to convert the docx file to Markdown (based on this gist):

    pandoc \
    -t markdown_strict \
    --extract-media='./attachments/source' \
    source.docx \
    -o output.md
  4. Copy / paste the content, and clean up where the formatting is incorrect.

[!WARNING]
The formatting of the Pandoc-generated output was not 100% accurate. While I have made every effort to correct formatting issues and other minor bugs, you might encounter some typos, incorrect numbering, or potentially missing content.

If you notice any of these issues, please help in fixing them by opening an issue or submitting a pull request. Your contributions are greatly appreciated.

Gracias

Development

First things first

You need to have Python 3.12 and Poetry installed on your machine. If, for some reason, you have a different python version, you can use pyenv to install multiple python versions on your machine. Once you have Python 3.12 installed, create a virtual environment.

[!NOTE]
If you have a different Python version and/or you don't have Poetry, try installing the python dependencies via pip install -r requirements.txt

Getting Started

Here, we assume that you have git on your machine, and that you have created a Python 3.12 virtual environment.

Now, upon cloning this repository (or forking + cloning your fork), navigate to the cloned project directory.

  1. In your virtual environment, install Python dependencies

    poetry install
  2. Run the following in your shell:

    mkdocs serve

    The documentation will be available at: http://127.0.0.1:8001/

Contributing

This project follows the all-contributors specification. Contributions are most welcome! A good place to start is by helping out with the unchecked items in the TODO section of this README!

Feel free to check the issues page and take a look at the contributing guide before you get started.

TODO

Notice

I do not own the copyright to the contents of the aforementioned Act. The text of the Act is a public document, and this project aims to make it more accessible and user-friendly. Any modifications or enhancements to the presentation are my own work, and permission is granted to copy, distribute and/or modify this work under the terms of the GNU Free Documentation License as published by the Free Software Foundation, either version 1.3, or (at your option) any later version; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is contained in the file COPYING.