Powerpoint to Dashboard

The DevNet Powerpoint to Dashboard (PPTX2Dashboard) project is one of
many coding innovations developed to help you, our Cisco customers, in
your automation projects, whether you are a network engineer early in
your journey with network automation, an existing InfraDev, or a
seasoned AppDev. These projects are based on leading practices
developed in the Network Operations Center (NOC) for CiscoLive
conference events in the US and Europe.

This specific project provides an ability to convert a Microsoft
Powerpoint (pptx) file embedded with unique, static data placeholders
into a webpage/dashboard that is updated with variables from a
cross-reference file. You have the opportunity to use graphic artists
or your own Powerpoint skills to layout a dashboard in whatever way
suits your need. You can represent network topologies, buildings -
anything that appeals to your data visualization intents.

You define unique data placeholders to identify where dynamic data
should appear. You provide a cross-reference file that maps the unique
placeholder tags to the actual data, then run the script. It will swap
the placeholders for the dynamic values, run an image conversion
process, then push to an Apache webserver publication directory.

The business driver for this was to enable customer flexible dashboards
without requiring the network management SME, DevOps engineer or SRE to
interpret the visualization intent. The SME can focus on the method for
obtaining the instrumentation/telemetry and allow a graphic artist or
Powerpoint SME to design the optimal layout.

Technology Stack / Architecture overview

Below is the overall architecture for the project.

PPTX2Dashboard Architecture

Other things you might include: N.A.

Status

v1.0 released to Automation Exchange
This is based on technology and processes used for over 7 years in the CiscoLive NOC.

Screenshot / Output

Dashboard example screensnap

Use Case Description

This project solves Dashboard visualization needs by enabling the use
of the popular Microsoft Powerpoint to provide custom layout templates
for representating topology, asset location or other graphics.

Installation

Two options are provided: self-directed installation with requirements
OR Docker. Pick whichever suits your preference, security requirements
and deployment capabilities.
When running as a self-directed installation with requirements, it is
suggested to run this project in its own Linux Virtual Machine.
Development was done on Ubuntu 20.10, but other Linux variants should
be fine.
Apache and Python3 environments should be installed - Ubuntu may have
provided these in your installation. Our guidance is to keep the
system-supplied version and install the latest Python and use virtual
environments (venv) to maintain separation of environments from the core
operating system. Our development was done on Python v3.9.1, but
anything above v3.7 should be sufficient.
Additionally, libreoffice should be
installed. Only the Impress module is needed, which mimics the function
of Powerpoint. So a minimum VM install would include the libre-impress
package.
See the (INSTALL)[/docs/INSTALL.md] guidance for more detail.

Known issues

None known at this time.

Getting help

For additional help, look to the DevNet Developer Support team. If major enhancements are requested, the Cisco Customer Experience (CX) team can be engaged for transactional assistance.

If you have questions, concerns, bug reports, etc., please create an issue against this repository.

Getting involved

How to contribute is found in the CONTRIBUTING file.

Credits and references

  1. N.A.

Licensing info

See the LICENSE.


published

Use Case

Powerpoint to Dashboard

The Powerpoint to Dashboard project enables the user to provide a Microsoft Powerpoint (.pptx) file with data placeholder annotations to depict the location of variable data. The user also supplies a JSON-based data mapping file, presumably generated on a periodic basis and runs the Python script.

The Python script will extract the .pptx file to its XML components and perform string replacements using the user-supplied data mapping file. It will them repackage the files into a suitable .pptx, then run it through a Libreoffice Impress image converter of .pptx to .png. Finally the script creates a simple HTML file referencing the .png image and copies to the Apache web publishing directory.

The business driver for developing this was for Cisco customers that desired a way to have dynamic data overlaying building images or network topology representations. The model allows the user to leverage graphic artists or their own Powerpoint layout skills to create a dashboard specific to their need without extensive HTML/CSS skills. The use of simple variable placeholders serve as reference points for the script to string-replace in the dynamic data.

White Papers and References

Not applicable

Not applicable

Not applicable

Solutions on Ecosystem Exchange

Not applicable

Powerpoint to Dashboard

The Powerpoint to Dashboard project enables the user to provide a Microsoft Powerpoint (.pptx) file with data placeholder annotations to depict the location of variable data. The user also supplies a JSON-based data mapping file, presumably generated on a periodic basis and runs the Python script.

The Python script will extract the .pptx file to its XML components and perform string replacements using the user-supplied data mapping file. It will them repackage the files into a suitable .pptx, then run it through a Libreoffice Impress image converter of .pptx to .png. Finally the script creates a simple HTML file referencing the .png image and copies to the Apache web publishing directory.

The business driver for developing this was for Cisco customers that desired a way to have dynamic data overlaying building images or network topology representations. The model allows the user to leverage graphic artists or their own Powerpoint layout skills to create a dashboard specific to their need without extensive HTML/CSS skills. The use of simple variable placeholders serve as reference points for the script to string-replace in the dynamic data.

White Papers and References

Not applicable

Not applicable

Not applicable

Solutions on Ecosystem Exchange

Not applicable

View code on GitHub
  • Owner

  • Contributors

    +1Github contributor
  • Categories

  • Programming Languages

    Python
  • License

    Other

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.