npm package: @proso-io/fobu
Description: A robust form builder and renderer with a customizable API and a beautiful out-of-the-box experience.
Author: proso-io
Latest version: 1.0.25

<img src="https://i.imgur.com/PvP0NrI.png" width="200" alt="Fobu logo">

[![GitHub issues](https://img.shields.io/github/issues/proso-io/fobu)](https://github.com/proso-io/fobu/issues)
[![GitHub stars](https://img.shields.io/github/stars/proso-io/fobu)](https://github.com/proso-io/fobu/stargazers)
[![GitHub license](https://img.shields.io/github/license/proso-io/fobu)](https://github.com/proso-io/fobu/blob/master/LICENSE)

Fobu is a lightweight form builder built with extensive customization, straight-forward API and beautiful out-of-the-box experience in mind. Its built using React.

**Demo URL** - https://codesandbox.io/s/awesome-platform-s01vj?fontsize=14&hidenavigation=1&theme=dark&view=preview

### Background

Who are we? Just a bunch of guys who genuinely like to build software and think that doing live projects is the best way to learn. No dummy calculator projects, or static sites that do nothing. Real, useful software.

We have been working with the non-profit [Goonj](https://goonj.org), with software they need to be more effective in their operations (for free, we don't charge non-profits for this). Goonj uses the under-utilized and excess urban household material as a tool for rural development across 23 states in India. They need a way of centrally managing all their activities and its associated data. Fobu started as a subcomponent within that project.

Fobu needs to be proficient at the following -

1. Fobu should allow a wide variety of form inputs - radio buttons, textboxes, text areas, checkboxes, image inputs, automcomplete fields etc. This list should be extendable by design.
2. Fobu should be flexible - it should allow overrides.
3. Fobu needs to handle image input like a pro. Activity data for Goonj has a lot of image assets and they need to be handled well.
4. Fobu has to be fault tolerant. If network conditions aren't supportive, Fobu should be able to save form state and resume uploads whenever network conditions are favourable. Special mention - image uploads.
5. Fobu has to be PWA compatible.

### How to contribute

Fobu is very young but has big plans. If you want to be an early contributor, now is a good time. We are literally just getting started. Unlike other projects, we want to help new developers get into this. Make mistakes, write shitty code so that we can tell you how to get better.

We will be using [GitHub issues](https://github.com/proso-io/fobu/issues/) to create tasks for this project. Feel free to comment on the issue that you see unassigned at the moment with your intention to take up. Here's the process once you have picked a issue -

1. Fork the repo.
2. Follow the issue instructions and build your component / function.
3. Add your story in the storybook. For more info, go [here](https://storybook.js.org/docs/guides/guide-react/#step-4-write-your-stories).
4. Push your changes and raise a pull request. Check out [this](https://help.github.com/en/articles/creating-a-pull-request-from-a-fork) article to see how to raise a PR across forks.

If any of this doesn't make sense to you, raise an issue with the question tag / [tweet](https://ctt.ac/19H5b)