Skip to content

kim-n-lee/saintlouisfarms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Saint Louis Farms

Final project for LaunchCode's 2023 Liftoff Program.

Saint Louis Farms is a full-stack web application that enables farmers to sell their products directly to consumers.

The application was designed with three types of users in mind: farmers, clients, and non-authenticated users.

Farmers have the ability to set up a store. They can manage their inventory by uploading, deleting, and updating items. Farmers can customize their store settings according to their needs. They have access to a dashboard that provides real-time updates on past and current orders well as a customizable farmer profile. Two different product views are available for farmers: a condensed table view for inventory management and a store preview option that allows them to see how products will appear for clients.

Clients can conveniently place orders from farms using a shopping cart feature. They can also track the live status of their orders in through three stages: unconfirmed, confirmed, and fulfilled. The system will automatically adjust the inventory of ordered items to ensure availability. Additionally, clients have access to a comprehensive order history log where they can review all of their purchases.

Non-authenticated users are able to browse all farms but cannot place orders. Any attempt made by non-authenticated users to perform actions other than viewing farms or stores will be redirected to the login page.

Authors

Features

  • Full CRUD database operations (Create, Read, Update, Delete)
  • User authentication with password hashing
  • Custom measurements and product types for farmers
  • Quick Edit and Full Edit functionality for farmer products
  • Image processing for products and farmer profiles
  • Product search feature in both farmer product views
  • Dynamic shopping cart that displays each item
  • Order processing - the ability to pull ordered items from inventory, confirm orders, fulfill orders
  • Order logging - the ability for both farmers and clients to review the details of all orders
  • State-driven navbar that changes according to the type of user (farmer, client, or non-authenticated)

Tech Stack

Front-end: Bootstrap, JavaScript, Nerd Fonts

Back-end: Java, Spring Boot, Thymeleaf, MySQL, Hibernate

Run Locally

Note: This project requires Java 11

  1. Install MySQL Workbench and create a new MySQL connection.

  2. Right-click and save this demo database.

  3. Import the demo database into MySQL Workbench.

  4. Create a user named stlfarms with a password of 3f6398041156215b and give the user all permissions.

  5. Install IntelliJ IDEA.

  6. Clone the project.

git clone https://github.com/kim-n-lee/saintlouisfarms.git
  1. Open the project in IntelliJ.
idea64.exe saintlouisfarms
  1. Find and click the Gradle icon gradle icon.

  2. In the Gradle menu, find bootRun in saint-louis-farms > tasks > application > bootRun.

Gradle pane

  1. Right-click bootRun and select Modify Run Configuration....

Modify run configuration

  1. Find the "Environment Variables" field and paste the following string then hit "Apply".
dbUserName=stlfarms;db=stlfarms;dbPassword=3f6398041156215b

Gradle database credentials

  1. Double click "bootRun" in the Gradle menu. After about 15 seconds, everything should have loaded correctly and you should see Tomcat started on port(s): 2020 near the bottom of the run pane.

Tomcat serving on 2020

  1. Finally, open your browser of choice and go to http://localhost:2020/.

Demo Users:

Farmers:

Username Password
[email protected] password
[email protected] password
[email protected] password
[email protected] password
[email protected] password
[email protected] password

Clients

Username Password
[email protected] password

Acknowledgements

Screenshots

Homepage

All Farms

Storefront

New Item with Preview

Confirm Order

Farmer Product View

Client Order Log

Farmer Order Log

About

LC101 Liftoff Project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published