GithubHelp home page GithubHelp logo

chrisa657 / farm_finders Goto Github PK

View Code? Open in Web Editor NEW

This project forked from liamlows/cloud_sample_docker-compose_project

1.0 0.0 0.0 5.23 MB

A sample project using docker-compose with Node and React.JS containers while using a MySQL DBaaS.

License: GNU General Public License v3.0

Shell 0.01% Dockerfile 0.41% JavaScript 95.81% HTML 0.78% CSS 2.99%

farm_finders's Introduction

Sample docker-compose Project With MySQL DBaaS

A sample project using docker-compose with Node and React.JS containers.

Also uses a MySQL DBaaS like AWS RDS or GCloud CloudSQL.

This project is meant to give you an understanding of how to formulate your docker development environment for developing web apps using React.JS, Node.JS, and a cloud SQL DBaaS like AWS RDS.

  • Express Server

  • React.JS Client

SETUP

Initial setup

First make sure to open a terminal window to ./backend and ./frontend and from there run yarn or npm install in both directories to install the necessary packages.

Create a file in the ./frontend folder called .env and add the the following to it (if it is not already there):

CHOKIDAR_USEPOLLING=true

Create a file in the ./backend folder called .env and add the the following to it:

NOTE: You will need to share the values in this .env file in the backend folder with your team members, it is not recommended you push this file to your GitHub repo as it may expose your secrets to the world!

# POPULATE WITH YOUR OWN VALUES SPECIFIED IN DATABASE CREATION!
# mysql database name
MYSQL_DB=
# mysql port (usually 3306)
MYSQL_PORT=
# mysql cloud database login user
MYSQL_CLOUD_USER=
# mysql cloud database login password
MYSQL_CLOUD_PASS=
# mysql cloud database host URL
MYSQL_CLOUD_HOST=

MySQL setup

Once you have set up you mysql database on a DBaaS provider like AWS RDS or GCloud CloudSQL, ensure that the database is publicly accessible on the port you used in setup (usually 3306). Then access the database and run the commands provided in ./backend/framework.sql.

Once you have run those commands, in ./backend/.env add all the values that you were provided. Specifically the host, user, pass, and port of the database.

Running the project

After installing the packages and entering your cloud DBaaS connection details, all you need to do is run docker-compose up from the root directory of the project to have the docker-compose file automatically spin the containers up for you.

If you want to run a terminal in detached mode (so you can close the window and it wont stop the containers) then type docker-compose up -d for a headless start instead.

Stopping the project

As always make sure to type docker-compose down to shut the containers down and close everything up.

Click here to read the directions on how to deploy the project to the cloud on an EC2 instance for all to visit!


Hope this helps!

Liam

farm_finders's People

Contributors

chrisa657 avatar kirkwat avatar bwheeless avatar elliot-boesch avatar liamlows avatar andrewyu3628 avatar mharrison777 avatar mharrison77 avatar

Stargazers

 avatar

farm_finders's Issues

3.5 As a Customer, I want to have my inventory updated, so that I can do less work to update my inventory

Size: 13
Given a grocery store is on their home page, when the page loads, then I want my fulfilled requests to be shown as fulfilled and removed from the feed page
Given a restaurant is on their home page, when the page loads, then I want my fulfilled requests to be shown as fulfilled and removed from the feed page
Given a user is on their home page, when the page loads, then I want my fulfilled requests to be shown as fulfilled and removed from the feed page

2.5 As a farmer I want to be able to create a sell request So that I can update the feed with my inventory

Size: 13
Given a farmer is logged in and their page has out of date info, when they click to delete on a product, they will be prompted to conifrm a deletion
Given the farmer wants to delete a product, when the user clicks confirm, the homepage and feed should be updated and remove this product
Given the user changes their mind about deleting, when they click cancel, then their product will remain the same.

2.4 As a farmer I want to be able to delete or remove my products So that I can delete an existing product that has run out of stock from my page.

Size: 8
Given a farmer is logged in and their page has out of date info, when they click to delete on a product, they will be prompted to conifrm a deletion
Given the farmer wants to delete a product, when the user clicks confirm, the homepage and feed should be updated and remove this product
Given the user changes their mind about deleting, when they click cancel, then their product will remain the same.

2.2 As a farmer I want to be able to add my products So that I can add products that appear as available on my home page.

Size: 13
Given a farmer is logged in and their page is empty, when they click to add a prodcuct, then they will be prompted to enter a product's info and quantity and then post it to the page.
Given the famer's page is not empty, when they click to add a product, then a farmer will confirm more information that will appear alongside other products.
Given the user changes their mind about adding, when they click cancel, then their product will remain the same.

2.3 As a farmer I want to be able to edit my products So that I can edit an existing product info that appears on my page.

Size: 8
Given a farmer is logged in and their page has incorrect info, when they click on a product, then they should be prompted to update a product's inventory amount
Given the farmer has input the new info, when the user clicks confirm, the homepage and feed should update with this new amount.
Given the user changes their mind about editing, when they click cancel, then their product will remain the same.

4.4 I want to be able to select a quantity of items so that I can purchase the exact quantity of items I want.

Size: 5
Given I am viewing a product page, when I open the page, I will be able to update the amount of items I in the range of >0 and <Total Available Inventory
Given I am viewing a product page, when I open the page and update the amount of items to be outside the range of >0 and <Total Available Inventory I will be presented with text that of either "Select at least 1 product" or "Quantity of items not available"

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.