Skip to main content

Flask React Berry

Open-source Full Stack seed project built in React and Flask on top of Berry Dashboard

Full-Stack Seed project generated by React App Generator top of Berry Dashboard design. The backend logic is provided by a simple, easy-to-extend Flask API Server that manages the Authentication flow (login, registration, logout) using JSON Web Tokens (JWT). The React Design is crafted by CodedThemes on top of MUI Library.

React Berry Dashboard - Full-Stack Starter generated by AppSeed.


Product features

The product expects a running API backend that exposes an interface for login/logout and register actions. By default, the guest users are redirected to the login page. Once the user is authenticated using an existing account or the new one, all private pages are accessible.


React Berry Dashboard

  • M-UI based design
  • Modern aesthetics UI design - Designed by CodedThemes
  • React, Redux, Redux-persist

Tests (compatibility matrix using Ubuntu 18 LTS as reference)

NodeJSNPMYARN
v14.0.0
v16.0.0
v18.0.0

Flask API Features

  • Stack: Flask / Flask-RestX / SQLite
  • DB Layer: SqlAlchemyORM, SQLite persistence
  • Auth: JWT tokens managed via Flask-jwt_extended
  • API Definition - the unified API structure implemented by this server

Manual Build

Being a full-stack product, the backend and the frontend should be compiled and started separately. Before starting to compile the product, make sure you have the following tools installed in the environment:

  • NodeJS - version 14.x or higher
  • GIT - used to clone tjhe sources from Github
  • Python3 - used in many tools

👉 Start the Frontend

Step 1 - Once the project is downloaded, change the directory to react-ui.

$ cd react-ui

Step 2 - Install dependencies via NPM or yarn

$ npm i
// OR
$ yarn

Step 3 - Start in development mode

$ npm run start 
// OR
$ yarn start

At this point, the app is available in the browser localhost:3000 (the default address).


👉 Start the Backend Server

Step 1 - Change the directory to api-server-flask

$ cd api-server-flask

Step 2 - Install dependencies using a virtual environment

$ # Virtualenv modules installation (Unix based systems)
$ virtualenv env
$ source env/bin/activate
$
$ # Virtualenv modules installation (Windows based systems)
$ # virtualenv env
$ # .\env\Scripts\activate
$
$ pip install -r requirements.txt

Step 3 - Setup the Flask environment

$ export FLASK_APP=run.py
$ export FLASK_ENV=development
// OR
$ (Windows CMD) set FLASK_APP=run.py
$ (Windows CMD) set FLASK_ENV=development
// OR
$ (Powershell) $env:FLASK_APP = ".\run.py"
$ (Powershell) $env:FLASK_ENV = "development"

Step 4 - Start the API server (development mode)

$ flask run

Use the API via POSTMAN or Swagger Dashboard at localhost:5000.

👉 Start API using Docker

Step 1 - Change the directory to api-server-flask

$ cd api-server-flask

Step 2 - Start API using docker-compose command

$ docker-compose up --build

👉 Codebase Structure

< ROOT  >
|
api-server-flask/
├── api
│ ├── config.py
│ ├── __init__.py
│ ├── models.py
│ └── routes.py
├── requirements.txt
├── run.py
└── tests.py

Resources

Full-Stack React Berry PRO