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
Swinglibrary, providing an intuitive and interactive access.
- The project utilizes
MySQLto store and manage information.
- User password information are encrypted using
SHA-256for 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
Deleteand confirm your choice as well); - ☑️ Copy info about human into table (click on chose human and click on special button
Copyand 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/envand 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
recoursepackage.
# 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
Mavenproject. - If necessary, configure
Java SDK 11inProject 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.👇











