GithubHelp home page GithubHelp logo

mhomaid1 / catalog Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 726 KB

An application that provides a list of items within a variety of categories, as well as provide a user registration and authentication system.

Python 35.48% HTML 3.16% CSS 4.42% JavaScript 56.93%

catalog's Introduction

Item Catalog Application

This project is a web application that populates categories and their items, as well as provide a user authentication system. Users will have the ability to post, edit and delete their own items. Its hosted on AWS with this domain

Technologies used

  • React (frontend)
  • Flask (backend)
  • Redis (for limiting users requests)
  • OAuth and JWT authentication (OAuth2 is implemented using Google API)
  • PostgreSQL

Getting Startedcd

Prerequisites

  • Virtualization software such as VirtualBox, VMware, etc.
  • Vagrant

Local installation

  • Clone the repo git clone https://github.com/MohammadA7/catalog.git
  • Cd to project directory cd catalog
  • Run vagrant up (it will take a lot of time)
  • Then run vagrant ssh (you will be inside the VM now)
  • Cd to /vagrant/catalog-backend
  • If you want to generate fake data run python faker.py

Note that before you can run the backend you have to provide the client_secret.json for google OAuth

Using Google OAuth Login

To get the Google login working there are a few additional steps:

  • Go to Google Dev Console

  • Sign up or login if prompted

  • Go to credentials

  • Select create crendentials > OAuth Client ID

  • Select web application

  • Enter name item catalog

  • Authorized javaScript origins = ['http://localhost:5000', 'http://localhost:8000']

  • Authorized redirect URIs = 'http://localhost:8000/'

  • Select create

  • Copy the Client ID and paste it into the .env.example as REACT_APP_GOOGLE_CLINET_ID variable then rename the file to .env

  • On the console select download json

  • Rename JSON file to exactly client_secret.json

  • Place JSON file in catalog-backend directory

  • Then run the backend using python project.py

  • in another shell ssh again then cd vagrant/catalog-frontend

  • Run the frontend serve -s build -p 8000

Now you can access frontend on http://localhost:8000

catalog's People

Contributors

malhomaid avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.