Skip to content

Latest commit

 

History

History
35 lines (21 loc) · 3.4 KB

website_plan.md

File metadata and controls

35 lines (21 loc) · 3.4 KB

Web design for applied math open-source software project

Essential information

Project scope: We’re looking for someone to revamp the online documentation and welcome page at cvxpy.org in close collaboration with one of our volunteer maintainers.

Budget: We received a $4k grant from a nonprofit to get this work done.

Who we are: We are CVXPY, a free and open-source software project that has helped radically expand access to mathematical optimization across scientific and engineering fields. We have over a million downloads per month.

Required skillset:

  • Ability to make a modern, maintainable statically-hosted website
  • Work with us to design new layouts and presentations of existing information

Optional, but appreciated, skillset:

  • Some background in math

Where we are and where we want to be

CVXPY focuses entirely on a type of optimization known as “convex optimization.” It has made major strides in democratizing the use of this type of optimization across scientific and engineering fields. Much of this success can be attributed to the quality of CVXPY's web documentation in its early years. However, many features have been added to CVXPY since the website was last designed. As a result, our web documentation has become hard for new users to navigate. At the same time, we have longstanding users (e.g., in industry and at national labs) who have a hard time learning about our most advanced capabilities.

Our current website is built with a basic sphinx template. Notably, it lacks the interactivity required to curate information to different users. We would like you to help modernize our website to present information at different levels of granularity without having to rely solely on different levels of "headings" in a long web page. One example is in information about the wide range of third-party libraries that CVXPY relies on for the actual numerical optimization process. This information is currently contained in the "Advanced Features" section of the documentation (Advanced Features), which houses many unrelated topics and thus would greatly benefit from a more flexible structure.

Another place where we need to improve the presentation of information is in the documentation of the building blocks (called "atoms") that are used to define optimization models. CVXPY uses the properties of these atoms to quickly determine if a proposed model is convex. The atoms are formatted in a rigid tabular listing (Atoms Table), which has become increasingly hard to navigate as contributors have added more and more atoms over the years. Discovering new atoms is particularly difficult, since the current format does not allow for quick searching or filtering. We would therefore like to make the atom documentation another area of focus for the proposed modernization. Besides switching to a more modern design, we want to ensure that the contents of the atoms table are easy to find from search engines and scale well across different screen sizes.

How to apply

Email us at cvxpydevs@gmail.com with the following:

  • Your portfolio/links to sites you’ve made in the past
  • Any other ideas you have on how to improve the site
  • Availability for a 20 minute interview (make sure to specify time zone). US evenings or early morning are preferred.