opnform/README.md

95 lines
3.4 KiB
Markdown
Raw Normal View History

# OpnForm
2022-09-20 19:59:52 +00:00
<p align="center">
<img src="https://github.com/JhumanJ/OpnForm/blob/main/public/img/social-preview.jpg?raw=true">
2022-09-20 19:59:52 +00:00
</p>
<a href="https://github.com/jhumanj/OpnForm/actions"><img src="https://github.com/jhumanj/laravel-vue-tailwind-spa/workflows/tests/badge.svg" alt="Build Status"></a>
2022-09-20 19:59:52 +00:00
> An open-source form builder. It's an alternative to products like Typeform, JotForm, Tally etc.
2022-09-20 19:59:52 +00:00
## Features
2022-09-20 19:59:52 +00:00
- No-code form builder, with infinite number of fields & submissions
- Text inputs, Date inputs, URL inputs, Phone inputs, Email inputs, Checkboxes, Select and Multi-Select inputs, Number Inputs, Star-ratings, File uploads & more
- Embed anywhere (on your website, in your Notion page, etc)
- Email notifications (for both form owner & form respondents)
- Hidden fields
- Form passwords
- URL form pre-fill
- Slack integration
- Webhooks
- Form logic
- Customize colors, add images or even some custom code
- Captcha form protection
- Form closing date
- Limit the number of submissions allowed
2022-09-20 19:59:52 +00:00
And much more!
2022-09-20 19:59:52 +00:00
## Getting started with OpnForm
2022-09-20 19:59:52 +00:00
The easiest way to get started with OpnForm is with the [official managed service in the Cloud](https://opnform.com/).
2022-09-20 19:59:52 +00:00
It takes 1 minute to try out the builder for free. You'll have high availability, backups, security, and maintenance all managed for you.
2022-09-20 19:59:52 +00:00
## Self-hosting
2022-09-20 19:59:52 +00:00
🚧 This section is under construction!
### Requirements
- PHP >= 8.0
- MySQL/MariaDB or PostgreSQL
- Node.js and NPM/Yarn/... to compile assets
### Local installation
First, let's work with the codebase and its dependencies.
```bash
# Get the code!
git clone git@github.com:JhumanJ/OpnForm.git && cd OpnForm
# Install PHP and JS dependencies
composer install && npm install
# Compile assets (see the scripts section in package.json)
npm run dev # or prod, or watch
```
Now, we can configure Laravel. We just need to prepare some vars in our `.env` file, just create it with `cp .env.example .env` then open it!
Configure the desired database in the `DATABASE_` section. You can fine tune your installation on the [laravel documentation](https://laravel.com/docs/9.x).
Run these artisan commands:
```bash
# Generate needed secrets 🙈
php artisan key:generate
php artisan jwt:secret # and select yes!
# Creates DB schemas
php artisan migrate
```
Now, create an S3 bucket (or equivalent). Create an IAM user with access to this bucket, fill the environment variables: `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_DEFAULT_REGION`, `AWS_BUCKET`. In your AWS bucket permissions, add the following under "Cross-origin resource sharing (CORS)":
```json
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "PUT", "POST", "GET", "DELETE" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ]
```
🎉 Done! Enjoy your personal OpnForm instance at: [http://opnform.test](http://opnform.test).
2022-09-20 19:59:52 +00:00
## Tech Stack
2022-09-20 19:59:52 +00:00
OpnForm is a standard web application built with:
- [Laravel](https://laravel.com/) PHP framework
- [Vue.js](https://vuejs.org/) front-end framework
- [TailwindCSS](https://tailwindcss.com/)
2022-09-20 19:59:52 +00:00
## Contribute
You're more than welcome to contribute to this project. We don't have guidelines on this yet, but we will soon. In the meantime, feel free to ask [any question here](https://github.com/JhumanJ/OpnForm/discussions).
2022-09-20 19:59:52 +00:00
## License
OpnForm is open-source under the GNU Affero General Public License Version 3 (AGPLv3) or any later version. You can find it [here](https://github.com/JhumanJ/OpnForm/blob/main/LICENSE).
2022-09-20 19:59:52 +00:00