<h1 align="center">
  <a href="https://github.com/hadmean/hadmean">
    <!-- Please provide path to your logo here -->
    <img src="docs/images/logo.png" alt="Logo" height="100">
  </a>
</h1>

<div align="center">
  Hadmean
  <br />
  <a href="#about"><strong>Explore the screenshots »</strong></a>
  <br />
  <br />
  <a href="https://github.com/hadmean/hadmean/issues/new?assignees=&labels=bug&template=01_BUG_REPORT.md&title=bug%3A+">Report a Bug</a>
  ·
  <a href="https://github.com/hadmean/hadmean/issues/new?assignees=&labels=enhancement&template=02_FEATURE_REQUEST.md&title=feat%3A+">Request a Feature</a>
  .<a href="https://github.com/hadmean/hadmean/discussions">Ask a Question</a>
</div>

<div align="center">
<br />

<!-- [![Project license](https://img.shields.io/github/license/hadmean/hadmean.svg?style=flat-square)](LICENSE)

[![Pull Requests welcome](https://img.shields.io/badge/PRs-welcome-ff69b4.svg?style=flat-square)](https://github.com/hadmean/hadmean/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22)
[![code with love by thrownullexception](https://img.shields.io/badge/%3C%2F%3E%20with%20%E2%99%A5%20by-thrownullexception-ff1414.svg?style=flat-square)](https://github.com/thrownullexception) -->

</div>

<details open="open">
<summary>Table of Contents</summary>

- [About](#about)
  - [How it looks](#how-it-looks)
  - [Motivation](#motivation)
  - [Why you should try Hadmean](#why-you-should-try-hadmean)
- [Getting Started](#getting-started)
  - [Prerequisites](#prerequisites)
  - [Installation](#installation)
- [Usage](#usage)
- [Features](#features)
- [Roadmap](#roadmap)
- [Support](#support)
- [Project assistance](#project-assistance)
- [Contributing](#contributing)
- [Authors & contributors](#authors--contributors)
- [Security](#security)
- [License](#license)
- [Built With](#acknowledgements)

</details>

---

## About

Hadmean is a admin dashboard framework that build itself based on your database schema and your configurations. It is all batteries included and extremely customizable

### How it looks
<img src="./docs/demo.gif" title="Hadmean Demo" width="100%">

### Motivation
There are lot of good internal dashboard tools out there, The ones bundled with your framework are usually good but not usually highly customizable so they usually dont end up in your clients hand. The good ones are paid for and the free version are usually heavily restricted and they usually require weeks to master with some techinical know-how of SQL and javascript

Hadmean takes another approach to building internal apps by building all the features you will ever need based on the metadata of your database which you can also edit in the app and allowing you to toogle off the ones you dont need

### Why you should try Hadmean
- It is free
- Easy to setup, You setup it all up literally as fast you can type your DB credentials
- Little learning curve with almost zero technical knowledge requirement
- Lot of features that you will expect from a paid solution
- It is not tied to any language or framework
- Lastly, It is open source, It doesn't get more customizable than that

## Getting Started

### Prerequisites

 - [Git](https://git-scm.com)
 - [Node.js](https://nodejs.org/en/download/)
 - [Yarn](https://yarnpkg.com/getting-started/install)
 - Supported database (MySQL, Postgres, MsSQL, SQLite)

### Installation

```bash
# Clone this repository
$ git clone https://github.com/hadmean/hadmean <project_name>

# Go into the repository
$ cd <project_name>

# Install dependencies
$ yarn install

# Run the app
$ npm run dev
```

## Usage
After installation, You will be asked to provide your database credentials and create your admin account then you will be able to start using the application

## Features
 - Authentication
 - Role and Permissions
 - Rich text editor
 - Users management
 - Deep navigation
 - CRUD
 - Data Count
 - Relationships
 - Synced DB Validation
 - Fields selection/ ordering
 - Cache configurations
 - Credentials Storage
 - Disabling/Hiding of forms
 - Introspection
 - Selection Colors
 - Form validation
 - Filters


## Roadmap

See the [open issues](https://github.com/hadmean/hadmean/issues) for a list of proposed features (and known issues).

- [Top Feature Requests](https://github.com/hadmean/hadmean/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction)
- [Top Bugs](https://github.com/hadmean/hadmean/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc) (Add your votes using the 👍 reaction)
- [Newest Bugs](https://github.com/hadmean/hadmean/issues?q=is%3Aopen+is%3Aissue+label%3Abug)

## Support

Reach out to the maintainer at one of the following places:
- [GitHub Discussions](https://github.com/hadmean/hadmean/discussions)
- Contact options listed on [this GitHub profile](https://github.com/thrownullexception)

## Project assistance

If you want to say **thank you** or/and support active development of Hadmean:

- Add a [GitHub Star](https://github.com/hadmean/hadmean) to the project.
- Tweet about Hadmean.
- Write interesting articles about Hadmean on [Dev.to](https://dev.to/), [Medium](https://medium.com/) or your personal blog.

Together, we can make Hadmean **better**!

## Contributing

First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are **greatly appreciated**.


Please read [our contribution guidelines](docs/CONTRIBUTING.md), and thank you for being involved!

## Authors & contributors

The original setup of this repository is by [Ayobami Akingbade](https://github.com/thrownullexception).

For a full list of all authors and contributors, see [the contributors page](https://github.com/hadmean/hadmean/contributors).

## Security

Hadmean  takes security at heart and follows all known good practices of security, but 100% security cannot be assured.
Hadmean is provided **"as is"** without any **warranty**. Use at your own risk.

_For more information and to report security issues, please refer to our [security documentation](docs/SECURITY.md)._

## Built With
- [KnexJS](https://github.com/knex/knex)
- [React](https://github.com/facebook/react)
- [NextJS](https://github.com/vercel/next.js)
- [Typescript](https://github.com/microsoft/TypeScript)
- [React Query](https://github.com/TanStack/query)
- [React Table](https://github.com/TanStack/table)
- [React Final Form](https://github.com/final-form/react-final-form)
- [Styled-components](https://github.com/styled-components/styled-components)
- [Class Validator](https://github.com/typestack/class-validator)
- [Zustand](https://github.com/pmndrs/zustand) 
- [Prismjs](https://github.com/PrismJS/prism)

## License

This project is licensed under the **GNU General Public License v3**.

See [LICENSE](LICENSE) for more information.
