The Notebook is the place for all your needs
Zeppelin interpreter concept allows any language/data-processing-backend to be plugged into Zeppelin. Currently Zeppelin supports many interpreters such as Scala(with Apache Spark), Python(with Apache Spark), SparkSQL, Hive, Markdown and Shell.
Adding new language-backend is really simple. Learn how to write a zeppelin interpreter.
Zeppelin provides built-in Apache Spark integration. You don't need to build a separate module, plugin or library for it.
Zeppelin's Spark integration provides
Some basic charts are already included in Zeppelin. Visualizations are not limited to SparkSQL's query, any output from any language backend can be recognized and visualized.
With simple drag and drop Zeppelin aggeregates the values and display them in pivot chart. You can easily create chart with multiple aggregated values including sum, count, average, min, max.
Zeppelin can dynamically create some input forms into your notebook.
Learn more about Dynamic Forms.
Notebook URL can be shared among collaborators. Zeppelin can then broadcast any changes in realtime, just like the collaboration in Google docs.
Zeppelin provides an URL to display the result only, that page does not include Zeppelin's menu and buttons. This way, you can easily embed it as an iframe inside of your website.