Skip to content

A Personal Gardening Help System created using Java, JavaFX, and SceneBuilder that acts as an inventory management system for seeds. The program connects to a MySQL database (hosted using XAMPP) to save and retrieve data.

Notifications You must be signed in to change notification settings

cedricdomingo/SeedBank-Personal-Gardening-Help-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

SeedBank - Personal Gardening Help System

Slice 1 (2)

Project Description

This project is a Personal Gardening Help System that acts as an inventory management system for seeds. It was created using Java, JavaFX, and SceneBuilder. The program connects to a MySQL database (hosted using XAMPP) to save and retrieve data. The SeedBank Personal Gardening Help System helps users manage their seed inventory, and automate their planting and harvest schedules. The system includes a functional graphical user interface (GUI), user authentication, and various features to help users manage their gardening activities.

Hello 2022-12-09 02-59-01

Table of Contents

Features

  • Functional GUI
  • User authentication with sign-up and login
  • Seeds inventory with ability to add, update, and mark seeds as harvested or purchased
  • Search function for seeds by name, category, planting time, and expiry date
  • Images of fruit/vegetables in search results
  • Automatic check for what vegetables should be planted in the current month
  • Pop-up window on first day of each month with list of vegetables to be planted
  • Automatic check for seed quantity (minimum: < 50g) and expiry date (minimum: < 1 year)
  • Pop-up window alerts for low seed quantity and expiring seeds
  • Marking of "planted" and "wasted" seeds and removal from inventory

Reason for Project

I created this project as a fourth year university student to showcase my skills in Java, database management, and designing and implementing graphical user interfaces. It serves as a useful tool for managing a personal gardening inventory and keeping track of important information such as expiry dates and quantities.

Installation Instructions

  1. Install Java on your system.
  2. Install XAMPP and start the MySQL server.
  3. Install MySQL Workbench( and create a new MySQL connection.
  4. In MySQL Workbench, click Server > Data Import > Import from Self-Contained File > and select the 'seedbank_db.sql' file uploaded with this project, and click Start Import.
  5. Clone this repository and open the project in an IDE (such as IntelliJ IDEA).
  6. To load the project in IntelliJ:
    • Open the project folder in IntelliJ and add any Maven Build scripts if prompted by the IDE
    • Right click the .jar file in the file structure (V21_Project\V2_Project\demo\lib\mysql-connecter-java.8.0.28.jar) and click "Add as Library..."
    • In the IntelliJ taskbar, click Edit > Find > Replace in files > and replace "jdbc:mysql://localhost:3306/demo", "root", ""); with your MySQL root username and password.
  7. Run SeedBank.main();
  8. (OPTIONAL) To modify the layout or change elements of the UI, install JavaFX and SceneBuilder, and use SceneBuilder to open and modify the .FXML files in the project folder.

Interfaces

After logging in, the user is presented with the main screen of the program. From here, the user can access the Seeds Inventory to add, update, and mark seeds as harvested or purchased, or navigate to other interfaces to add new seed entries, search existing entries, review their planting schedule, update their user settings, and create reports.

Register

Upon launching the program for the first time, users are instructed to register for an account. The registration form requests for the user to enter a username, password, and preferred alias (optional). The provided login credentials are then stored in the MySQL database, and the login credentials are used for future logins.

image

Login

Once users have registered, they are able to login from the login portal.

image

Dashboard

The user can search for seeds using the search function. Results will include images of the fruit/vegetable, as well as other relevant information. Users can also view their alerts from this screen.

image

Seed Entry

The user can create new seed entries by navigating to the Seed Entry page, selecting a Seed Type, and completing the form to provide information regarding method obtained (harvested or purchased), quantity (in grams), and expiry date. This page also displays an image of the seed type to make selection of the correct seed type easier for the user.

image

Search results

The program will automatically check for what vegetables should be planted in the current month and display a pop-up window on the first day of the month with a list of the vegetables to be planted.

image

Planting Schedule

This page allows users to view seeds that are available to plant in the current year given a specific month. Currently, the planting schedule references the "optimal planting month" for each seed type, and only returns matching seed entries that are not "Wasted".

image

User Settings

This page allows users to modify their user settings, including preferred alias and current password. In the future, a "dark mode" option may be made available to users.

image

Reports

This page allows users to automatically generate reports based on their seed entry and seed inventory activity. These reports include: Top 5 Harvested Seeds, Top 5 Purchased Seeds, Top 5 Wasted Seeds, and Next Year's Gardening Plan. Currently the reports are generated and stored in the database, though in the future, we may offer more detailed reports to be exported to a PDF or CSV file.

image

Pop-up window

The program will also automatically check the quantity and expiry date of seeds in the inventory and display pop-up alerts if necessary. Seeds that have expired can be marked as "wasted" and removed from the inventory.

image

Future Development

In the future, I plan to add more features to the Personal Gardening Help System, including:

  • Complete "Planting Schedule" interface to provide more functionality and detailed scheduling, including the option to search through multiple years (currently only searches the current year)
  • Add a forgot password function to the login screen
  • Add functionality to allow users to modify an existing seed entry
  • Fully functional report generation (Top 5 Harvested Seeds, Top 5 Purchased Seeds, Top 5 Wasted Seeds)
  • A calendar view to track when seeds have been planted and harvested
  • A shopping list feature to keep track of seeds to be purchased
  • Improved user interface and visual design
  • Integration with external gardening resources and tools!

About

A Personal Gardening Help System created using Java, JavaFX, and SceneBuilder that acts as an inventory management system for seeds. The program connects to a MySQL database (hosted using XAMPP) to save and retrieve data.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages