Skip to content

Liberté, is an app that allows artists to promote and sell their art online, allowing them to skip certain barries they may face when trying to showcase their creations throught more traditional channels. Each art piece is unique.

Notifications You must be signed in to change notification settings

RMjessica/ecommerce_web_app

 
 

Repository files navigation

This is Liberté! An ecommerce WebApp build with React JS and Flask API

🔥 You can find the deployed version here: https://liberte-app.herokuapp.com/

There is more to come and much more to learn. This project is a work in progress 💪

If you are interested in accessing the boilerplate with which this app got started, click on the button below.

Open in Gitpod

Documentation: https://start.4geeksacademy.com/

Description

  • React.js front end and python/flask backend for your web application.
  • Extensive documentation here.
  • Integrated with Pipenv for package managing.
  • Fast deloyment to heroku in just a few steps here.
  • Use of .env file.
  • SQLAlchemy integration for database abstraction.

Styles

You can update the styles/index.scss or create new .scss files inside styles/ and import them into your current scss or js files depending on your needs.

Components

Add more files into your ./src/js/components or styles folder as you need them and import them into your current files as needed.

💡Note: There is an example using the Context API inside views/demo.js;

Views (Components)

Add more files into your ./src/js/views and import them in ./src/js/layout.jsx.

Context

This boilerplate comes with a centralized general Context API. The file ./src/js/store/flux.js has a base structure for the store, we encourage you to change it and adapt it to your needs.

React Context docs BreathCode Lesson view

The Provider is already set. You can consume from any component using the useContext hook to get the store and actions from the Context. Check /views/demo.js to see a demo.

import { Context } from "../store/appContext";
const MyComponentSuper = () => {
    //here you use useContext to get store and actions
    const { store, actions } = useContext(Context);
    return <div>{/* you can use your actions or store inside the html */}</div>;
};

Back-End Manual Installation:

It is recomended to install the backend first, make sure you have Python 3.8, Pipenv and a database engine (Posgress recomended)

  1. Install the python packages: $ pipenv install
  2. Create a .env file based on the .env.example: $ cp .env.example .env
  3. Install your database engine and create your database, depending on your database you have to create a DATABASE_URL variable with one of the possible values, make sure yo replace the valudes with your database information:
Engine DATABASE_URL
SQLite sqlite:////test.db
MySQL mysql://username:password@localhost:port/example
Postgress postgres://username:password@localhost:5432/example
  1. Migrate the migrations: $ pipenv run migrate (skip if you have not made changes to the models on the ./src/api/models.py)
  2. Run the migrations: $ pipenv run upgrade
  3. Run the application: $ pipenv run start

Backend Populate Table Users

To insert test users in the database execute the following command:

$ flask insert-test-users 5

And you will see the following message:

  Creating test users
  [email protected] created.
  [email protected] created.
  [email protected] created.
  [email protected] created.
  [email protected] created.
  Users created successfully!

To update with all yours tables you can edit the file app.py and go to the line 80 to insert the code to populate others tables

Front-End Manual Installation:

  • Make sure you are using node version 14+ and that you have already successfully installed and runned the backend.
  1. Install the packages: $ npm install
  2. Start coding! start the webpack dev server $ npm run start

Publish your website!

This boilerplate it's 100% integrated with Herkou, follow this tutorial and just by pushing your changes to the heroku repository will deploy the website afterwards.

About

Liberté, is an app that allows artists to promote and sell their art online, allowing them to skip certain barries they may face when trying to showcase their creations throught more traditional channels. Each art piece is unique.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 63.7%
  • Python 28.1%
  • CSS 6.8%
  • HTML 0.8%
  • Mako 0.3%
  • Shell 0.3%