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.
- Jood Alzqaili (@Jzkili)
- Maisa Salahaldin (@MaisaSalahaldin)
- Tudor Seserman (@tudor-seserman)
- Mike Wilson (@MikeWilsonSTL)
- 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)
Front-end: Bootstrap, JavaScript, Nerd Fonts
Back-end: Java, Spring Boot, Thymeleaf, MySQL, Hibernate
-
Install MySQL Workbench and create a new MySQL connection.
-
Right-click and save this demo database.
-
Import the demo database into MySQL Workbench.
-
Create a user named
stlfarms
with a password of3f6398041156215b
and give the user all permissions. -
Install IntelliJ IDEA.
-
Clone the project.
git clone https://github.com/kim-n-lee/saintlouisfarms.git
- Open the project in IntelliJ.
idea64.exe saintlouisfarms
-
In the Gradle menu, find
bootRun
insaint-louis-farms
>tasks
>application
>bootRun
.
- Right-click
bootRun
and selectModify Run Configuration...
.
- Find the "Environment Variables" field and paste the following string then hit "Apply".
dbUserName=stlfarms;db=stlfarms;dbPassword=3f6398041156215b
- 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.
- Finally, open your browser of choice and go to http://localhost:2020/.
Username | Password |
---|---|
[email protected] |
password |
[email protected] |
password |
[email protected] |
password |
[email protected] |
password |
[email protected] |
password |
[email protected] |
password |
Username | Password |
---|---|
[email protected] |
password |
- Bootstrap: https://getbootstrap.com/
- Nerd Fonts: https://www.nerdfonts.com/
- Spring: https://spring.io/
- Thymeleaf: https://www.thymeleaf.org/