-
Notifications
You must be signed in to change notification settings - Fork 186
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Adi Chirilov
committed
Aug 26, 2020
1 parent
1827e2b
commit cb93744
Showing
272 changed files
with
60,015 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
.git | ||
__pycache__ | ||
*.pyc | ||
*.pyo | ||
*.pyd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
DEBUG=True | ||
SECRET_KEY=S3cr3t_K#Key | ||
DB_ENGINE=postgresql | ||
DB_NAME=appseed-flask | ||
DB_HOST=localhost | ||
DB_PORT=5432 | ||
DB_USERNAME=appseed | ||
DB_PASS=pass |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# byte-compiled / optimized / DLL files | ||
__pycache__/ | ||
*.py[cod] | ||
|
||
# tests and coverage | ||
*.pytest_cache | ||
.coverage | ||
|
||
# database & logs | ||
*.db | ||
*.sqlite3 | ||
*.log | ||
|
||
# venv | ||
env | ||
venv | ||
|
||
# other | ||
.DS_Store | ||
|
||
# sphinx docs | ||
_build | ||
_static | ||
_templates | ||
|
||
# javascript | ||
package-lock.json | ||
.vscode/symbols.json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Change Log | ||
|
||
## [1.0.0] 2020-08-26 | ||
### Initial Release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
FROM python:3.6 | ||
|
||
ENV FLASK_APP run.py | ||
|
||
COPY run.py gunicorn-cfg.py requirements.txt config.py .env ./ | ||
COPY app app | ||
|
||
RUN pip install -r requirements.txt | ||
|
||
EXPOSE 5005 | ||
CMD ["gunicorn", "--config", "gunicorn-cfg.py", "run:app"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2019 - present Creative-Tim / AppSeed.us | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
web: gunicorn run:app --log-file=- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,197 @@ | ||
# material-dashboard-flask | ||
# [Material Dashboard Flask](https://www.creative-tim.com/product/material-dashboard-flask) [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social&logo=twitter)](https://twitter.com/home?status=Material%20Dashboard,%20a%20free%20Material%20Bootstrap%204%20Admin%20Template%20%E2%9D%A4%EF%B8%8F%20https%3A//bit.ly/2Lyat1Y%20%23bootstrap%20%23material%20%23design%20%23developers%20%23freebie%20%20via%20%40CreativeTim) | ||
|
||
![version](https://img.shields.io/badge/version-1.0.0-blue.svg) [![GitHub issues open](https://img.shields.io/github/issues/creativetimofficial/material-dashboard-flask.svg?maxAge=2592000)](https://github.com/creativetimofficial/material-dashboard-flask/issues?q=is%3Aopen+is%3Aissue) [![GitHub issues closed](https://img.shields.io/github/issues-closed-raw/creativetimofficial/material-dashboard-flask.svg?maxAge=2592000)](https://github.com/creativetimofficial/material-dashboard-flask/issues?q=is%3Aissue+is%3Aclosed) [![Join the chat at https://gitter.im/NIT-dgp/General](https://badges.gitter.im/NIT-dgp/General.svg)](https://gitter.im/creative-tim-general/Lobby) [![Chat](https://img.shields.io/badge/chat-on%20discord-7289da.svg)](https://discord.gg/E4aHAQy) | ||
|
||
![Material Dashboard Flask - Admin Dashboard coded in Django.](https://github.com/creativetimofficial/material-dashboard-flask/blob/master/media/material-dashboard-flask-intro.gif) | ||
|
||
<br /> | ||
|
||
> Free product - **Flask Dashboard** starter project - Features: | ||
- UI Kit: **Material Dashboard** (Free Version) | ||
- [Codebase](https://github.com/app-generator/boilerplate-code-flask-dashboard) - provided by **[AppSeed](https://appseed.us/)** | ||
- SQLite, PostgreSQL, SQLAlchemy ORM | ||
- Alembic (DB schema migrations) | ||
- Modular design with **Blueprints** | ||
- Session-Based authentication (via **flask_login**) | ||
- Forms validation | ||
- Deployment scripts: Docker, Gunicorn / Nginx, Heroku | ||
|
||
<br /> | ||
|
||
## Table of Contents | ||
|
||
* [Demo](#demo) | ||
* [Quick Start](#quick-start) | ||
* [Documentation](#documentation) | ||
* [File Structure](#file-structure) | ||
* [Browser Support](#browser-support) | ||
* [Resources](#resources) | ||
* [Reporting Issues](#reporting-issues) | ||
* [Technical Support or Questions](#technical-support-or-questions) | ||
* [Licensing](#licensing) | ||
* [Useful Links](#useful-links) | ||
|
||
<br /> | ||
|
||
## Demo | ||
|
||
> To authenticate use the default credentials ***test / pass*** or create a new user on the [registration page](https://www.creative-tim.com/live/material-dashboard-flask). | ||
- **Material Dashboard Flask** [Login Page](https://www.creative-tim.com/live/material-dashboard-flask) | ||
|
||
<br /> | ||
|
||
## Quick start | ||
|
||
> UNZIP the sources or clone the private repository. After getting the code, open a terminal and navigate to the working directory, with product source code. | ||
```bash | ||
$ # Get the code | ||
$ git clone https://github.com/creativetimofficial/material-dashboard-flask.git | ||
$ cd material-dashboard-flask | ||
$ | ||
$ # Virtualenv modules installation (Unix based systems) | ||
$ virtualenv env | ||
$ source env/bin/activate | ||
$ | ||
$ # Virtualenv modules installation (Windows based systems) | ||
$ # virtualenv env | ||
$ # .\env\Scripts\activate | ||
$ | ||
$ # Install modules - SQLite Database | ||
$ pip3 install -r requirements.txt | ||
$ | ||
$ # OR with PostgreSQL connector | ||
$ # pip install -r requirements-pgsql.txt | ||
$ | ||
$ # Set the FLASK_APP environment variable | ||
$ (Unix/Mac) export FLASK_APP=run.py | ||
$ (Windows) set FLASK_APP=run.py | ||
$ (Powershell) $env:FLASK_APP = ".\run.py" | ||
$ | ||
$ # Set up the DEBUG environment | ||
$ # (Unix/Mac) export FLASK_ENV=development | ||
$ # (Windows) set FLASK_ENV=development | ||
$ # (Powershell) $env:FLASK_ENV = "development" | ||
$ | ||
$ # Start the application (development mode) | ||
$ # --host=0.0.0.0 - expose the app on all network interfaces (default 127.0.0.1) | ||
$ # --port=5000 - specify the app port (default 5000) | ||
$ flask run --host=0.0.0.0 --port=5000 | ||
$ | ||
$ # Access the dashboard in browser: http://127.0.0.1:5000/ | ||
``` | ||
|
||
> Note: To use the app, please access the registration page and create a new user. After authentication, the app will unlock the private pages. | ||
<br /> | ||
|
||
## Documentation | ||
The documentation for the **Material Dashboard Flask** is hosted at our [website](https://demos.creative-tim.com/material-dashboard-flask/docs/1.0/getting-started/getting-started-flask.html). | ||
|
||
<br /> | ||
|
||
## File Structure | ||
Within the download you'll find the following directories and files: | ||
|
||
```bash | ||
< PROJECT ROOT > | ||
| | ||
|-- app/ | ||
| |-- home/ # Home Blueprint - serve app pages (private area) | ||
| |-- base/ # Base Blueprint - handles the authentication | ||
| |-- static/ | ||
| | |-- <css, JS, images> # CSS files, Javascripts files | ||
| | | ||
| |-- templates/ # Templates used to render pages | ||
| | | ||
| |-- includes/ # | ||
| | |-- navigation.html # Top menu component | ||
| | |-- sidebar.html # Sidebar component | ||
| | |-- footer.html # App Footer | ||
| | |-- scripts.html # Scripts common to all pages | ||
| | | ||
| |-- layouts/ # Master pages | ||
| | |-- base-fullscreen.html # Used by Authentication pages | ||
| | |-- base.html # Used by common pages | ||
| | | ||
| |-- accounts/ # Authentication pages | ||
| |-- login.html # Login page | ||
| |-- register.html # Registration page | ||
| | ||
|-- requirements.txt # Development modules - SQLite storage | ||
|-- requirements-mysql.txt # Production modules - Mysql DMBS | ||
|-- requirements-pqsql.txt # Production modules - PostgreSql DMBS | ||
| | ||
|-- .env # Inject Configuration via Environment | ||
|-- config.py # Set up the app | ||
|-- run.py # Start the app - WSGI gateway | ||
| | ||
|-- ************************************************************************ | ||
``` | ||
|
||
<br /> | ||
|
||
## Browser Support | ||
|
||
At present, we officially aim to support the last two versions of the following browsers: | ||
|
||
<img src="https://s3.amazonaws.com/creativetim_bucket/github/browser/chrome.png" width="64" height="64"> <img src="https://s3.amazonaws.com/creativetim_bucket/github/browser/firefox.png" width="64" height="64"> <img src="https://s3.amazonaws.com/creativetim_bucket/github/browser/edge.png" width="64" height="64"> <img src="https://s3.amazonaws.com/creativetim_bucket/github/browser/safari.png" width="64" height="64"> <img src="https://s3.amazonaws.com/creativetim_bucket/github/browser/opera.png" width="64" height="64"> | ||
|
||
<br /> | ||
|
||
## Resources | ||
|
||
- Demo: <https://www.creative-tim.com/live/material-dashboard-flask> | ||
- Download Page: <https://www.creative-tim.com/product/material-dashboard-flask> | ||
- Documentation: <https://demos.creative-tim.com/material-dashboard-flask/docs/1.0/getting-started/getting-started-flask.html> | ||
- License Agreement: <https://www.creative-tim.com/license> | ||
- Support: <https://www.creative-tim.com/contact-us> | ||
- Issues: [Github Issues Page](https://github.com/creativetimofficial/material-dashboard-flask/issues) | ||
|
||
<br /> | ||
|
||
## Reporting Issues | ||
|
||
We use GitHub Issues as the official bug tracker for the **Material Dashboard Flask**. Here are some advices for our users that want to report an issue: | ||
|
||
1. Make sure that you are using the latest version of the **Material Dashboard Flask**. Check the CHANGELOG from your dashboard on our [website](https://www.creative-tim.com/). | ||
2. Providing us reproducible steps for the issue will shorten the time it takes for it to be fixed. | ||
3. Some issues may be browser-specific, so specifying in what browser you encountered the issue might help. | ||
|
||
<br /> | ||
|
||
## Technical Support or Questions | ||
|
||
If you have questions or need help integrating the product please [contact us](https://www.creative-tim.com/contact-us) instead of opening an issue. | ||
|
||
<br /> | ||
|
||
## Licensing | ||
|
||
- Copyright 2019 - present [Creative Tim](https://www.creative-tim.com/) | ||
- Licensed under [Creative Tim EULA](https://www.creative-tim.com/license) | ||
|
||
<br /> | ||
|
||
## Useful Links | ||
|
||
- [More products](https://www.creative-tim.com/bootstrap-themes) from Creative Tim | ||
- [Tutorials](https://www.youtube.com/channel/UCVyTG4sCw-rOvB9oHkzZD1w) | ||
- [Freebies](https://www.creative-tim.com/bootstrap-themes/free) from Creative Tim | ||
- [Affiliate Program](https://www.creative-tim.com/affiliates/new) (earn money) | ||
|
||
<br /> | ||
|
||
## Social Media | ||
|
||
- Twitter: <https://twitter.com/CreativeTim> | ||
- Facebook: <https://www.facebook.com/CreativeTim> | ||
- Dribbble: <https://dribbble.com/creativetim> | ||
- Instagram: <https://www.instagram.com/CreativeTimOfficial> | ||
|
||
<br /> | ||
|
||
--- | ||
[Material Dashboard Flask](https://www.creative-tim.com/product/material-dashboard-flask) - Provided by [Creative Tim](https://www.creative-tim.com/) and [AppSeed](https://appseed.us) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# -*- encoding: utf-8 -*- | ||
""" | ||
Copyright (c) 2019 - present AppSeed.us | ||
""" | ||
|
||
from flask import Flask, url_for | ||
from flask_login import LoginManager | ||
from flask_sqlalchemy import SQLAlchemy | ||
from importlib import import_module | ||
from logging import basicConfig, DEBUG, getLogger, StreamHandler | ||
from os import path | ||
|
||
db = SQLAlchemy() | ||
login_manager = LoginManager() | ||
|
||
def register_extensions(app): | ||
db.init_app(app) | ||
login_manager.init_app(app) | ||
|
||
def register_blueprints(app): | ||
for module_name in ('base', 'home'): | ||
module = import_module('app.{}.routes'.format(module_name)) | ||
app.register_blueprint(module.blueprint) | ||
|
||
def configure_database(app): | ||
|
||
@app.before_first_request | ||
def initialize_database(): | ||
db.create_all() | ||
|
||
@app.teardown_request | ||
def shutdown_session(exception=None): | ||
db.session.remove() | ||
|
||
def create_app(config): | ||
app = Flask(__name__, static_folder='base/static') | ||
app.config.from_object(config) | ||
register_extensions(app) | ||
register_blueprints(app) | ||
configure_database(app) | ||
return app |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# -*- encoding: utf-8 -*- | ||
""" | ||
Copyright (c) 2019 - present AppSeed.us | ||
""" | ||
|
||
from flask import Blueprint | ||
|
||
blueprint = Blueprint( | ||
'base_blueprint', | ||
__name__, | ||
url_prefix='', | ||
template_folder='templates', | ||
static_folder='static' | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# -*- encoding: utf-8 -*- | ||
""" | ||
Copyright (c) 2019 - present AppSeed.us | ||
""" | ||
|
||
from flask_wtf import FlaskForm | ||
from wtforms import TextField, PasswordField | ||
from wtforms.validators import InputRequired, Email, DataRequired | ||
|
||
## login and registration | ||
|
||
class LoginForm(FlaskForm): | ||
username = TextField ('Username', id='username_login' , validators=[DataRequired()]) | ||
password = PasswordField('Password', id='pwd_login' , validators=[DataRequired()]) | ||
|
||
class CreateAccountForm(FlaskForm): | ||
username = TextField('Username' , id='username_create' , validators=[DataRequired()]) | ||
email = TextField('Email' , id='email_create' , validators=[DataRequired(), Email()]) | ||
password = PasswordField('Password' , id='pwd_create' , validators=[DataRequired()]) |
Oops, something went wrong.