GSoC 2016 Web administration and process management for PyWPS

From OSGeo
Revision as of 00:54, 22 August 2016 by Wiki-Jan rudolf (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

PyWPS is an implementation of OGC WPS standard on the server side, written in Python programming language. Since it's perfectly designed for programs and machines, humans need a user-friendly tool to view and control all processes.

PyWPS now works in the way, that you can send HTTP requests with an XML file as an input and you will get an output with an XML file or data immediately or after some time. The problem is, people cannot control and manage them.

The project idea aims to create a web application, where users and administrators control and manage all processes. I will use existing Flask application to extend functions and interface to be easily usable for people. The interface, with modern web development approach and use of multiprocessing Python library, is going to allow people add, pause, remove, view progress.

Student Name: Jan Rudolf
Organization: PyWPS
Mentors: Jachym Cepicky and Jonas Eberle
Title: Web-based administration & process management for PyWPS
Repository: below
Blog: GSoC blog

Main goals specified by mentors

  • Get PyWPS up and running and you will be able to run several asynchronous processes in your computer.
  • Find out, what is the python way to control (and if possible) in background running processes.
  • Create REST API for this controlling.
  • If there is time, create web UI.

Repository

Instructions of usage are stated in README on Github and change on the fly.

The main repository:

Forked PyWPS

Supporting repository:

Python process control example

Example of an application with PyWPS and Apache

Week reports

Timeline by proposal

April 22 - May 23 (Before the official coding period)
  • Testing current implementation
  • With help of my mentor precisely define all goals and plan steps
  • Create subdomain on my website to document my progress
May 23 - June 27 (Official coding period starts)
  • Creating with the current implementation user-friendly web interface
  • Integrating current functionality into the web interface
  • Start to implementing new functions, mainly the process control
June 27 - August 8
  • Programming to meet all defined goals
  • Writing unit tests in the style of Test Driven Development
  • Documenting all code
August 8 - August 15
  • Integration tests
  • Solving conflicts with tests
  • Passing through the pull request process, resolving conflicts on the repository
August 15 - August 23 (Final week)
  • Review of code - make sure of code clarity
  • Review of documentation

Please understand, that summer semester ends in about a half of May and I've got finals until the middle of June, I have to be little/less active to finish all exams successfully. After exams, I can fully focus on the project (I don’t plan anything else) and work 8-10 hours per day.

Student's Bibliography

My name is Jan Rudolf, I am computer science student at Czech Technical University in Prague. I am very strong in web development, almost 10 years of experience, and I've got solid skills of algorithms and C/C++/Python programming from my university. I have never been involved in Google summer of code before. in 2016 is my first time.