-
Notifications
You must be signed in to change notification settings - Fork 217
GSoC 2018
CoCalc is an online web-service. It serves various open-source software applications for mathematical and scientific computing in managed projects, provides documents with real-time collaboration support (SageMath, Jupyter, LaTeX, Markdown, ...), course management utilities, chat, and much more.
Make an account here and check it out!
All GSoC projects require knowledge about modern web-technologies and its underlying technological stack.
In particular, the CoCalc is comprised of:
- backend: Linux, Node.js, Python 3, PostgreSQL
- frontend: HTML/CSS, CoffeeScript, React.js, a bit of jQuery, ...
- userland: Scientific Python stack, SageMath, Jupyter, R, hundreds of libraries, ...
Do these buzzwords sound familiar, are you excited to work this summer with us on a project, that will have immediate impact on all our users? We hope so!
Our source code: https://github.com/sagemathinc/cocalc
Below are our project ideas. Combined with the template, they should guide you in writing your application. We are equally happy with a well thought through idea of your own or a detailed write up of one of these projects.
Contact us or Harald while writing the application, such that we can assist you.
For more ideas: check out our open tickets.
Mentor: William Stein
Display of 3d graphics in CoCalc could be improved in many ways.
If you're interested in this project, stop now, create a Sage Worksheet in CoCalc, and click on the "Plot" button at the top, and plot some 3d plots.
OK, now that you're back, do the same in a Jupyter notebook with the SageMath kernel. It'll suck, because it uses an old Java-based renderer called JMOL by default (instead of THREE.js).
This project: make everything work better, by solving as many of the open CoCalc 3D issues and Sage 3D issues as you can, and anything else related that you can think of.
Scientific work is increasingly data-centric. So far, CoCalc only supports text documents and interactive worksheets. The goal of this project is to help scientists at their daily work for entering data, modify existing data tables, and cleaning up datasets.
- The basic structure is to write an interactive real-time synchronized editor for typed columnar data.
- This should be based on top of the already existing infrastructure of the CoCalc webapp.
- Regrading storage, as a first approximation a file-based approach is sufficient, e.g. CSV, HDF5 or SQLITE.
- Once a minimal working prototype is functional, extend this by UI elements to filter, aggregate data, show plots of the data, convert it, annotate entries (rows), etc.
difficulty: medium
skills: python (scientific stack), coffeescript, react.js
CoCalc has its own Jupyter Notebook implementation based on React.js. The goal of this summer project is to add small extensions to it. For example, the plan for the summer could be to start with a simple one and set the goal to complete with the first evaluation. Then, depending on progress and satisfaction, either one more complex project or two smaller ones until the end of the summer.
- Variable inspection: introspect the current value of a variable, see which ones are currently set in the kernel, list their types and a compact representation of their value, etc.
- Improve interactive help
- Feedback for errors, such that there are clues about what to do with certain exceptions
- Widget support
- Presentation mode (change the front-end to render content suitable for a presentation, still with interactive cells, etc.)
- Support exercises for students, with grading, etc.
- Frozen cells – they cannot be modified/evaluated any more
- Your ideas – come up with ideas of your own, like filtering cells based on a search string ... there are endless possibilities.
difficulty: medium, depends on the exact project
skills: react.js, understanding of html, possibly Python
This Wiki is for CoCalc.com.
A more structured documentation is the CoCalc User Manual.
For further questions, please contact us.