Welcome to App Birthdays, a project designed to manage and organize birthday information with a user-friendly interface. This project is built using Java 11, JDBC API, MySQL Driver, and Java Swing for the graphical user interface.
- This project uses jdk 11, JDBC API, MySQL Driver, GUI Java (Swing);
- The project is structured into several main packages:
ui
: Contains the user interface components and logic.domain
: Includes the domain logic and models.dao
: Manages data access and database operations.main
: Consists of the Main class that serves as the program's entry point.models
: Contains shared models used across different layers;
- The user interface is built using the
Swing
library, providing an intuitive and interactive access.
- The project utilizes
MySQL
to store and manage information.
- User password information are encrypted using
SHA-256
for enhanced security.
- The system is designed to be easily extensible, allowing for the addition of new features and improvements in the future.
- Log4j2 is employed to provide logging (levels:
info
,warn
,error
).
- The project uses several external dependencies to enhance its functionality, including:
javazoom
: For audio-related features.opencsv
: For working with CSV files.itext7-core
: For PDF generation.jcalendar
: For handling date-related components.
- ☑️️Menu program (U can choose your act: Authorization, Registration, Exit);
- ☑️Sing in;
- ☑️Registration;
- ☑️ Main Program;
- ☑️ Minimize program;
- ☑️ On/Off background music;
- ☑️ Reminding with sound for soon birthdays (u chose when give reminding (hour, minutes, after how many days));
- ☑️ Sorted:
- ☑️ Ascending for name user's friend;
- ☑️ Ascending for friend's birthday date;
- ☑️ Descending for name user's friend;
- ☑️ Descending for friend's birthday date;
- ☑️ Default (in order to add into db);
- ☑️ Main features:
- ☑️ Add data about friend birthday and him into table (click on special button
Add
); - ☑️ Edit info about human into table (click on chose human and
right click 2 times
); - ☑️ Delete info about human into table (click on chose human, click on special button
Delete
and confirm your choice as well); - ☑️ Copy info about human into table (click on chose human and click on special button
Copy
and click on Panel, entered combinationCtrl+V
);
- ☑️ Add data about friend birthday and him into table (click on special button
- ☑️ Addition features (download data about birthday people into db):
- ☑️ Download into .csv file;
- ☑️ Download into .pdf file;
- ☑️ Exit from account;
- I would you recommended to clone my project from the GitHub.
If you wanna do this, please use this command:
git clone https://github.com/dima666Sik/AppBirthdays.git
-
To run this project you will need to install (or use docker images):
- JDK 11 or higher;
- MySQL RDBMS.
-
If you have downloaded a project and want to run it with your own database then you have to create enum which will be stored in a package
src/main/java/ua/birthdays/app/dao/env
and put your name tables please.
public enum EnumDBNameTables {
USER_TABLE("users"),
USER_FRIENDS_DATA_TABLE("user_friends_data"),
ABOUT_FRIEND_TABLE("about_friend"),
FRIEND_BIRTHDAY_DATE_TABLE("friend_birthday_date");
private final String enumDBEnvironment;
EnumDBNameTables(String enumDBEnvironment) {
this.enumDBEnvironment = enumDBEnvironment;
}
public String getEnumDBEnvironment() {
return enumDBEnvironment;
}
}
- Also, please put your valid data in those properties. File stored in a
recourse
package.
# data for properties
app.birthdays.data.user.name=username
app.birthdays.data.password=password
app.birthdays.data.db.url=jdbc:RDBMS//host:port/nameDB
# name db
app.birthdays.data.db.name=namedb
-
Here are the steps for you to follow:
- Add this project to your IDE as
Maven
project. - If necessary, configure
Java SDK 11
inProject Structure settings
. - You can change setting to your logging into
log4j2.properties
. - First, you will need to register as a new user.
- Add this project to your IDE as
-
If you want to see documentation, please check javadoc in resources this app.
- You need to create database and add this name db to
db.properties
, and this all that u must to do in order to start to using this project.
Visually it looks like this:
Main functions of the program will be showed below.👇