A powerful data & AI notebook templates catalog: prompts, plugins, models, workflow automation, analytics, code snippets - following the IMO framework to be searchable and reusable in any context.

jupyter-naas jupyter-naas Last update: Dec 28, 2023

Naas TemplatesAwesome

(aka the "awesome-notebooks")

What is the objective of this repository ?

The objective of this repository is to create the largest catalog of production-ready Jupyter Notebooks templates. With those templates, it becomes easy to create data products (analytical dashboards, automation/AI engines and more).

Each of these templates adheres to a consistent framework, designed to expedite your coding process. While these templates are designed for ease of use, some may require data science skills for setup, particularly those that interface with third-party tools via API. These templates can function independently, but they also serve as integral components of data products. Consider them as the essential parts needed to assemble your 'car engine'. By developing these templates and ensuring their standalone functionality, we streamline the process of data product development, as we already comprehend the operation of some parts within it.

All templates are readily accessible on GitHub or via Naas Search.

How is organized a template?

To ensure the quality of the templates, we have defined a framework. Each notebook shall be organized as follow.

Header

  • Naas logo
  • # Title: "Tool - Action of the notebook", as h1. An "Open in Naas" button will be added automatically by the CI/CD when a notebook is merged to the master branch.
  • Tags: hashtags relevant to the topics covered in the notebook, as text
  • Author: name and social profile link of the author(s), as text
  • Last update: YYYY-MM-DD (Created: YYYY-MM-DD): The last update date refers to when the notebook was last edited, while the created date corresponds to when the notebook was initially merged.
  • Description: a one-liner explaining the benefits of the notebooks for the user, as text
  • References: list of references and websites utilized in the creation of this notebook

Outline

  • ## Input: list of all the variables, credentials, that needs to be setup, as h2
  • ## Model: list the functions applied to the data, as h2
  • ## Output: list the assets to be used by the user and its distribution channels if any, as h2

Providing Feedback

At the top of the notebook, you'll find a link for providing feedback on the notebook you're using. This could be:

  • A suggestion for a new feature that could enhance the notebook
  • Documentation improvements to make it more user-friendly
  • Notification of a typographical error
  • A simple word of praise (🙂)

Upon clicking this link, you'll be redirected to a Google form where you can provide more information. We will endeavor to contact the notebook creator for improvements or seek community assistance during our bi-monthly community calls that aim to create new templates or enhance existing ones.

Reporting A Bug

Since all our templates are open-source, errors may occasionally occur. We apologize for any inconvenience that may cause and request your support in reporting these issues to help us rectify them. To report a bug, click on the link at the top of the notebook. You will be redirected to GitHub to create an issue. Please attach screenshots to help us understand the bug, and provide any other information that could assist us in reproducing the issue. We will strive to respond as quickly as possible to resolve the issue.

How to contribute?

Pre-requisites

Step 1: Create or Select an Issue

Identify or propose an issue you wish to work on. It could be a snippet of Python code, an API integration with a tool you are using, or an automation leveraging existing templates with our scheduler, asset, or webhook features. Before you start working on a task, it's important to properly prepare the issue:

  • Make sure the description is clear and concise.
  • Tag yourself in the Assignees section.
  • Create a new branch from the Issue in the Development section.

If the Issue is already created, mentionned @FlorentLvr or @srini047 in a comment to be assign to the Issue.

If it's your first contribution, we will review your application (Pre-requisites) and you will receive an email inviting you to join our team!

Step 2: Technical Setup

Create your GitHub personal access token. Select “No expiration” and tick only the first section repository and keep your token safe as you won’t be able to generate it again. This token will allow you to commit, push and pull directly on our repository. Clone the awesome-notebooks repository on your Naas Cloud account and switch to the branch you created.

Step 3: Work on Your Notebook

If a draft of a template (generated with our AI system) has been already created, you can directly start working on it. Otherwise, you kick start manually:

  • Create a folder named with the source tool (if it's not already created).
  • Copy/Paste template.ipynb at the root of the repository
  • Rename the template following this format: Toolname_Function.ipynb.

Start working on your notebook. Commit your work every time you make significant progress. You can use the UI interface inside your Naas Lab server to do this.

  • All new files will be found in the untracked section, all modified files in the unstaged section.
  • Once you want to commit, add your notebook to staged by clicking on the + and create a commit message. We recommend following the commit convention and starting your message with “feat:” if it's an improvement or “fix:” if it's a bug fix, followed by a clear commit message. Here are some examples:
    • feat: update tags, author, and description
    • feat: developing function in model to…
    • fix: adding try except to manage error on…
  • Once you're satisfied with the result, push to the branch by clicking on the icon on top (make sure you use a GitHub personal access token and not a password, otherwise, it won’t work).
  • Ensure the notebook respects the framework.

Step 4: Open a Pull Request

Open a Pull Request and add a Templates Maintainer as Reviewer: Florent (@FlorentLvr) or Srini (@srini047).

  • Comment on the Pull Request with a brief summary of what you've done.
  • You will now discuss your work on the PR. If any changes are made, ensure you pull the branch before working on it again by clicking on the button at the top.
  • Expect feedback and merge within the next 48-72 hours.

Step 5: Promote Your Work

Once merged, promote your work on LinkedIn, Twitter, and other social media channels! (Optional, but people need to know you are awesome 😉). Explain why you did this notebook and how it could be useful. You can use the certificate generated once the PR is merged to display your work and add the tag open source contributor on your LinkedIn profile. We will be happy to have you in our community.

Thank you!

Step 6: Become a Templates Maintainer

If you want to contribute more frequently to Naas, you can become a templates maintainer. This status will offer you the right to be sponsored by Naas for your contributions done every month, ranging from $50 to $250. To become a templates maintainer, you must have completed at least 5 notebooks (which ensures you've mastered our process) and created 5 social media content promoting your template or Naas.

Then, you will be introduced to our template maintainer program and will have a dedicated team with the core team to assist you in developing integrations, automations, or AI systems.

Support us on social media

We are committed to sharing templates and giving shout outs to the contributors on our social media platforms, you can support us on:

Templates list

AI for Work

AWS

Abstract API

Advertools

Affinity

Agicap

Airtable

Algolia

AlphaVantage

Anthropic

Appwrite

Azure Blob Storage

Azure Machine Learning

Bazimo

BeautifulSoup

BigQuery

Bitly

Subscribe to our newsletter