|
1 |
| -# [Soft UI Dashboard Flask](https://appseed.us/product/soft-ui-dashboard/flask/) |
| 1 | +# [Flask Soft UI Dashboard](https://app-generator.dev/product/soft-ui-dashboard/flask/) |
2 | 2 |
|
3 |
| -Open-source **[Flask Dashboard](https://appseed.us/admin-dashboards/flask/)** generated by `AppSeed` on top of a modern design. Designed for those who like bold elements and beautiful websites, **Soft UI Dashboard** is ready to help you create stunning websites and web apps - Design from `Creative-Tim`. |
| 3 | +Open-source **Flask Starter with Soft UI Dashboard Design**, an open-source iconic `Bootstrap` design. |
| 4 | +The product is designed to deliver the best possible user experience with highly customizable feature-rich pages. |
4 | 5 |
|
5 |
| -- 👉 [Soft UI Dashboard Flask](https://appseed.us/product/soft-ui-dashboard/flask/) - Product page |
6 |
| -- 👉 [Soft UI Dashboard Flask](https://flask-soft-ui-dashboard.appseed-srv1.com/) - LIVE Demo |
| 6 | +- 👉 [Flask Soft UI Dashboard](https://app-generator.dev/product/soft-ui-dashboard/flask/) - `Product Page` |
| 7 | +- 👉 [Flask Soft UI Dashboard](https://flask-soft.onrender.com) - `LIVE Demo` |
| 8 | +- 👉 [Flask Soft UI Dashboard](https://app-generator.dev/docs/products/flask/soft-ui-dashboard/index.html) - `Complete Information` and Support Links |
| 9 | + - [Getting Started with Flask](https://app-generator.dev/docs/technologies/flask/index.html) - a `comprehensive tutorial` |
| 10 | + - `Configuration`: Install Tailwind/Flowbite, Prepare Environment, Setting up the Database |
| 11 | + - `Start with Docker` |
| 12 | + - `Manual Build` |
| 13 | + - `Start the project` |
| 14 | + - `Deploy on Render` |
7 | 15 |
|
8 | 16 | <br />
|
9 | 17 |
|
10 | 18 | ## Features
|
11 | 19 |
|
12 |
| -> `Have questions?` Contact **[Support](https://appseed.us/support/)** (Email & Discord) provided by **AppSeed** |
| 20 | +- Simple, Easy-to-Extend codebase, [Blueprint Pattern](https://app-generator.dev/blog/flask-blueprints-a-developers-guide/) |
| 21 | +- Up-to-date Dependencies |
| 22 | +- [Soft UI Dashboard](https://app-generator.dev/docs/templates/bootstrap/soft-ui-dashboard.html) Integration |
| 23 | +- [Bootstrap](https://app-generator.dev/docs/templates/bootstrap/index.html) Styling |
| 24 | +- Auth: Session Based, GitHub, Google |
| 25 | +- Celery Beat |
| 26 | +- DB Persistence: SQLite (default), |
| 27 | + - Easy switch to MySql/MariaDB, PgSql |
| 28 | +- Dynamic DataTables - manage data without coding |
| 29 | +- CI/CD integration for [Render](https://app-generator.dev/docs/deployment/render/index.html) |
| 30 | +- Deployment: Docker, Flask-Minify |
13 | 31 |
|
14 |
| -| Free Version | [PRO Version](https://appseed.us/product/soft-ui-dashboard-pro/flask/) | [Custom Development](https://appseed.us/custom-development/) | |
15 |
| -| --------------------------------------| --------------------------------------| --------------------------------------| |
16 |
| -| ✓ **Up-to-date dependencies** | **Everything in Free**, plus: | **Everything in PRO**, plus: | |
17 |
| -| ✓ Best Practices | ✅ **Premium Bootstrap 5 Design** | ✅ **1 Week** `Custom Development` | |
18 |
| -| ✓ DB: SQLite, MySql | ✅ **PRO Support** - [Email & Discord](https://appseed.us/support/) | ✅ **Team**: PM, Developer, Tester | |
19 |
| -| ✓ DB Tools: ORM, Flask-Migrate | ✅ `Private REPO Access` | ✅ Weekly Sprints | |
20 |
| -| ✓ Session-Based authentication | - | ✅ Technical SPECS | |
21 |
| -| ✓ `Docker` | - | ✅ Documentation | |
22 |
| -| ✓ `CI/CD` Flow via Render | - | ✅ **30 days Delivery Warranty** | |
23 |
| -| ✓ `Free Support` | - | ✅ [CI/CD for AWS, DO](https://appseed.us/terms/#section-ci-cd) **(Extra)** | |
24 |
| -| --------------------------------- | --------------------------------- | --------------------------------- | |
25 |
| -| ✓ [LIVE Demo](https://flask-soft-ui-dashboard.appseed-srv1.com/) | 🚀 [LIVE Demo](https://flask-soft-dashboard-enh.appseed-srv1.com/) `PRO` | **[Get in Touch ➡️](https://appseed.us/custom-development/)** | |
26 |
| - |
27 |
| - |
28 |
| - |
29 |
| -<br /> |
30 |
| - |
31 |
| -## ✅ Start in `Docker` |
32 |
| - |
33 |
| -> 👉 **Step 1** - Download the code from the GH repository (using `GIT`) |
34 |
| -
|
35 |
| -```bash |
36 |
| -$ git clone https://github.com/app-generator/flask-soft-ui-dashboard.git |
37 |
| -$ cd flask-soft-ui-dashboard |
38 |
| -``` |
39 |
| - |
40 |
| -<br /> |
41 |
| - |
42 |
| -> 👉 **Step 2** - Start the APP in `Docker` |
43 |
| -
|
44 |
| -```bash |
45 |
| -$ docker-compose up --build |
46 |
| -``` |
47 |
| - |
48 |
| -Visit `http://localhost:5085` in your browser. The app should be up & running. |
49 |
| - |
50 |
| -<br /> |
51 |
| - |
52 |
| -## ✅ Create `.env` file |
53 |
| - |
54 |
| -The meaning of each variable can be found below: |
55 |
| - |
56 |
| -- `DEBUG`: if `True` the app runs in development mode |
57 |
| - - For production value `False` should be used |
58 |
| -- `ASSETS_ROOT`: used in assets management |
59 |
| - - default value: `/static/assets` |
60 |
| -- `OAuth` via Github |
61 |
| - - `GITHUB_ID`=<GITHUB_ID_HERE> |
62 |
| - - `GITHUB_SECRET`=<GITHUB_SECRET_HERE> |
63 |
| - |
64 |
| -<br /> |
65 |
| - |
66 |
| -## ✅ Manual Build |
67 |
| - |
68 |
| -> 👉 Download the code |
69 |
| -
|
70 |
| -```bash |
71 |
| -$ git clone https://github.com/app-generator/flask-soft-ui-dashboard.git |
72 |
| -$ cd flask-soft-ui-dashboard |
73 |
| -``` |
| 32 | + |
74 | 33 |
|
75 | 34 | <br />
|
76 | 35 |
|
77 |
| -### 👉 Set Up for `Unix`, `MacOS` |
| 36 | +## Deploy LIVE |
78 | 37 |
|
79 |
| -> Install modules via `VENV` |
| 38 | +> One-click deploy (requires already having an account). |
80 | 39 |
|
81 |
| -```bash |
82 |
| -$ virtualenv env |
83 |
| -$ source env/bin/activate |
84 |
| -$ pip3 install -r requirements.txt |
85 |
| -``` |
| 40 | +[](https://render.com/deploy) |
86 | 41 |
|
87 | 42 | <br />
|
88 | 43 |
|
89 |
| -> Set Up Flask Environment |
| 44 | +## `Customize` with [Flask Generator](https://app-generator.dev/tools/flask-generator/) |
90 | 45 |
|
91 |
| -```bash |
92 |
| -$ export FLASK_APP=run.py |
93 |
| -$ export FLASK_ENV=development |
94 |
| -``` |
| 46 | +- Access the [Flask Generator](https://app-generator.dev/tools/flask-generator/) |
| 47 | +- Select the preferred design |
| 48 | +- (Optional) Design Database: edit models and fields |
| 49 | +- (Optional) Edit the fields for the extended user model |
| 50 | +- (Optional) Enable OAuth for GitHub |
| 51 | +- (Optional) Add Celery (async tasks) |
| 52 | +- (Optional) Enable Dynamic Tables Module |
| 53 | +- Docker Scripts |
| 54 | +- Render CI/Cd Scripts |
95 | 55 |
|
96 |
| -<br /> |
| 56 | +**The generated Flask project is available as a ZIP Archive and also uploaded to GitHub.** |
97 | 57 |
|
98 |
| -> Start the app |
99 |
| -
|
100 |
| -```bash |
101 |
| -$ flask run |
102 |
| -// OR |
103 |
| -$ flask run --cert=adhoc # For HTTPS server |
104 |
| -``` |
105 |
| - |
106 |
| -At this point, the app runs at `http://127.0.0.1:5000/`. |
107 |
| - |
108 |
| -<br /> |
| 58 | + |
109 | 59 |
|
110 |
| -### 👉 Set Up for `Windows` |
111 |
| - |
112 |
| -> Install modules via `VENV` (windows) |
113 |
| -
|
114 |
| -``` |
115 |
| -$ virtualenv env |
116 |
| -$ .\env\Scripts\activate |
117 |
| -$ pip3 install -r requirements.txt |
118 |
| -``` |
119 |
| - |
120 |
| -<br /> |
121 |
| - |
122 |
| -> Set Up Flask Environment |
123 |
| -
|
124 |
| -```bash |
125 |
| -$ # CMD |
126 |
| -$ set FLASK_APP=run.py |
127 |
| -$ set FLASK_ENV=development |
128 |
| -$ |
129 |
| -$ # Powershell |
130 |
| -$ $env:FLASK_APP = ".\run.py" |
131 |
| -$ $env:FLASK_ENV = "development" |
132 |
| -``` |
133 |
| - |
134 |
| -<br /> |
| 60 | + |
135 | 61 |
|
136 |
| -> Start the app |
137 |
| -
|
138 |
| -```bash |
139 |
| -$ flask run |
140 |
| -// OR |
141 |
| -$ flask run --cert=adhoc # For HTTPS server |
142 |
| -``` |
143 |
| - |
144 |
| -At this point, the app runs at `http://127.0.0.1:5000/`. |
145 |
| - |
146 |
| -<br /> |
147 |
| - |
148 |
| -## ✅ API Generator |
149 |
| - |
150 |
| -This module helps to generate secure APIs using `Flask-restX` via a simple workflow: |
151 |
| - |
152 |
| -- Edit/add your model in `apps/models.py` |
153 |
| -- Migrate the database: |
154 |
| - |
155 |
| -```bash |
156 |
| -$ flask db init # This should be executed only once |
157 |
| -$ flask db migrate # Generates the SQL |
158 |
| -$ flask db upgrade # Apply changes |
159 |
| -``` |
160 |
| - |
161 |
| -- Update Configuration: |
162 |
| - - `apps/config .py`, section `API_GENERATOR` |
163 |
| -- Generate the API code: |
164 |
| - - `$ flask gen_api` # the new code is saved in `apps/api` |
165 |
| -- Access the API in the browser: |
166 |
| - - `/api/MODEL_NAME/` |
167 |
| - |
168 |
| -The API is secured using the JWT tocken provided by `/login/jwt/` request (username & password should be provided). |
169 |
| - |
170 |
| -- GET requests are public (GET all, get Item) |
171 |
| -- Mutating requests are protected by token generated based on the user credentials (`username`, `pass`). |
172 |
| - |
173 |
| -> Two POSTMAN Collections are provided in the `media` directory: |
174 |
| -
|
175 |
| -- [Books API](./media/api-books.postman_collection) - that uses PORT **5000* for the api |
176 |
| -- [Books API 2](./media/api-books-docker.postman_collection) - that uses PORT **5085* for the api (default port in Docker) |
177 |
| - |
178 |
| -In case both ports are unusable in your environment, feel free to edit the files before POSTMAN import. |
179 |
| - |
180 |
| -<br /> |
181 |
| - |
182 |
| -### 👉 Create Users |
183 |
| - |
184 |
| -By default, the app redirects guest users to authenticate. In order to access the private pages, follow this set up: |
185 |
| - |
186 |
| -- Start the app via `flask run` |
187 |
| -- Access the `registration` page and create a new user: |
188 |
| - - `http://127.0.0.1:5000/register` |
189 |
| -- Access the `sign in` page and authenticate |
190 |
| - - `http://127.0.0.1:5000/login` |
191 |
| - |
192 |
| -<br /> |
193 |
| - |
194 |
| -## ✅ Codebase |
195 |
| - |
196 |
| -The project is coded using blueprints, app factory pattern, dual configuration profile (development and production) and an intuitive structure presented bellow: |
197 |
| - |
198 |
| -```bash |
199 |
| -< PROJECT ROOT > |
200 |
| - | |
201 |
| - |-- apps/ |
202 |
| - | | |
203 |
| - | |-- home/ # A simple app that serve HTML files |
204 |
| - | | |-- routes.py # Define app routes |
205 |
| - | | |
206 |
| - | |-- authentication/ # Handles auth routes (login and register) |
207 |
| - | | |-- routes.py # Define authentication routes |
208 |
| - | | |-- models.py # Defines models |
209 |
| - | | |-- forms.py # Define auth forms (login and register) |
210 |
| - | | |
211 |
| - | |-- static/ |
212 |
| - | | |-- <css, JS, images> # CSS files, Javascripts files |
213 |
| - | | |
214 |
| - | |-- templates/ # Templates used to render pages |
215 |
| - | | |-- includes/ # HTML chunks and components |
216 |
| - | | | |-- navigation.html # Top menu component |
217 |
| - | | | |-- sidebar.html # Sidebar component |
218 |
| - | | | |-- footer.html # App Footer |
219 |
| - | | | |-- scripts.html # Scripts common to all pages |
220 |
| - | | | |
221 |
| - | | |-- layouts/ # Master pages |
222 |
| - | | | |-- base-fullscreen.html # Used by Authentication pages |
223 |
| - | | | |-- base.html # Used by common pages |
224 |
| - | | | |
225 |
| - | | |-- accounts/ # Authentication pages |
226 |
| - | | | |-- login.html # Login page |
227 |
| - | | | |-- register.html # Register page |
228 |
| - | | | |
229 |
| - | | |-- home/ # UI Kit Pages |
230 |
| - | | |-- index.html # Index page |
231 |
| - | | |-- 404-page.html # 404 page |
232 |
| - | | |-- *.html # All other pages |
233 |
| - | | |
234 |
| - | config.py # Set up the app |
235 |
| - | __init__.py # Initialize the app |
236 |
| - | |
237 |
| - |-- requirements.txt # App Dependencies |
238 |
| - | |
239 |
| - |-- .env # Inject Configuration via Environment |
240 |
| - |-- run.py # Start the app - WSGI gateway |
241 |
| - | |
242 |
| - |-- ************************************************************************ |
243 |
| -``` |
244 |
| - |
245 |
| -<br /> |
246 |
| - |
247 |
| -## ✅ [Flask Soft Dashboard](https://appseed.us/product/soft-ui-dashboard-pro/flask/) `PRO` |
248 |
| - |
249 |
| -> For more components, pages and priority on support, feel free to take a look at this starter: |
250 |
| -
|
251 |
| -Soft UI Dashboard is a premium [Bootstrap 5](https://www.admin-dashboards.com/bootstrap-5-templates/) Design now available for download in Flask. Made of hundred of elements, designed blocks, and fully coded pages, Soft UI Dashboard PRO is ready to help you create stunning websites and web apps. |
252 |
| - |
253 |
| -- 👉 [Soft UI Dashboard PRO Flask](https://appseed.us/product/soft-ui-dashboard-pro/flask/) - `product page` |
254 |
| - - ✅ `Enhanced UI` - more pages and components |
255 |
| - - ✅ `Priority` on support |
256 |
| - |
257 |
| - |
258 |
| - |
259 |
| -<br /> |
| 62 | +<br /> |
260 | 63 |
|
261 | 64 | ---
|
262 |
| -[Soft UI Dashboard Flask](https://appseed.us/product/soft-ui-dashboard/flask/) - Open-source starter crafted by **[AppSeed](https://appseed.us/)**. |
| 65 | +[Flask Soft UI Dashboard](https://app-generator.dev/product/soft-ui-dashboard/flask/) - Open-Source **Flask** Starter provided by [App Generator](https://app-generator.dev) |
0 commit comments