{"id":25039009,"url":"https://github.com/aykrimino/donation-system-java-swing","last_synced_at":"2026-02-03T20:38:30.112Z","repository":{"id":265096442,"uuid":"894045775","full_name":"AyKrimino/donation-system-java-swing","owner":"AyKrimino","description":"A donation management system built with Java Swing and AWT for the UI, MySQL for the database, and a well-structured architecture (Models, DAO, Services, GUI).","archived":false,"fork":false,"pushed_at":"2024-12-19T13:59:11.000Z","size":360,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-03T02:59:22.235Z","etag":null,"topics":["awt-graphics","awt-gui","intellij","intellij-idea","java","mysql","mysql-connector","mysql-database","mysql-workbench","oop","oop-principles","oops-in-java","swing","swing-application","swing-gui"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AyKrimino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-25T16:49:48.000Z","updated_at":"2024-12-19T13:59:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"b04cfeff-8d47-4cfe-8e18-a0216e976ccc","html_url":"https://github.com/AyKrimino/donation-system-java-swing","commit_stats":null,"previous_names":["aykrimino/donation-system-java-swing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AyKrimino/donation-system-java-swing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AyKrimino%2Fdonation-system-java-swing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AyKrimino%2Fdonation-system-java-swing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AyKrimino%2Fdonation-system-java-swing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AyKrimino%2Fdonation-system-java-swing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AyKrimino","download_url":"https://codeload.github.com/AyKrimino/donation-system-java-swing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AyKrimino%2Fdonation-system-java-swing/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29056585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T20:13:53.544Z","status":"ssl_error","status_checked_at":"2026-02-03T20:13:40.507Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awt-graphics","awt-gui","intellij","intellij-idea","java","mysql","mysql-connector","mysql-database","mysql-workbench","oop","oop-principles","oops-in-java","swing","swing-application","swing-gui"],"created_at":"2025-02-06T02:07:48.979Z","updated_at":"2026-02-03T20:38:30.082Z","avatar_url":"https://github.com/AyKrimino.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Donation Management System\n\n## Table of Contents\n- [Overview](#overview)\n- [Features](#features)\n  - [Donors](#donors)\n  - [Associations](#associations)\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n  - [Step 1: Clone the Repository](#step-1-clone-the-repository)\n  - [Step 2: Set Up the Database](#step-2-set-up-the-database)\n  - [Step 3: Run the Application](#step-3-run-the-application)\n    - [Option 1: Run Directly Using IntelliJ IDEA](#option-1-run-directly-using-intellij-idea)\n    - [Option 2: Run from the Terminal](#option-2-run-from-the-terminal)\n  - [Step 4: Add the MySQL Connector to `lib/`](#step-4-add-the-mysql-connector-to-lib)\n- [Usage](#usage)\n- [Diagrams](#diagrams)\n  - [Class Diagram](#class-diagram)\n  - [Use Case Diagram](#use-case-diagram)\n- [Screenshots](#screenshots)\n- [Project Report](#project-report)\n- [Contributions](#contributions)\n- [License](#license)\n\n## Overview\nThe Donation Management System is a Java Swing application designed to facilitate the management of donations between **donors** and **associations**. This application provides an intuitive graphical user interface for:\n\n- **Donors** to manage their donations (create, update, delete, view).\n- **Associations** to collect donations and manage their records.\n\n## Features\n### Donors\n1. **Donation Management**: Donors can create, update, delete, and view their donations.\n2. **Dashboard**: Donors have a dashboard listing all their donations and showing the details of collections made by associations.\n\n### Associations\n1. **Donation Collection**: Associations can view all available donations and collect them in specified quantities.\n2. **Dashboard**: Associations have a dashboard that lists all the donations they have collected.\n\n## Prerequisites\n1. **Java Development Kit (JDK)** installed.\n2. **MySQL Database** setup.\n3. **IntelliJ IDEA** for running the project.\n4. **MySQL Connector/J** jar file version `9.1.0` added to the `lib` directory.\n5. **Git installed on your machine.**\n\n## Installation\n\n### Step 1: Clone the Repository\n\nEnsure Git is installed on your system. If not, install it from [Git Downloads](https://git-scm.com/downloads).\n\nRun the following command to clone the repository:\n\n```bash\ngit clone https://github.com/AyKrimino/donation-system-java-swing.git\n```\n\nNavigate to the project directory:\n\n```bash\ncd donation-system-java-swing\n```\n\n### Step 2: Set Up the Database\n\n1. Create a MySQL database named `donation_db`.\n2. Run the SQL schema provided in the `resources/sql/schema.sql` file to set up the tables.\n3. Update the `.env` file with your database connection details:\n\n```\nDB_URL=jdbc:mysql://localhost:3306/YOUR_DATABASE_NAME\nDB_USER=YOUR_DATABASE_USERNAME\nDB_PASSWORD=YOUR_DATABASE_PASSWORD\n```\n\n### Step 3: Run the Application\n\n#### Option 1: Run Directly Using IntelliJ IDEA\n\n1. Open the project in IntelliJ IDEA.\n2. Configure the classpath to include the `mysql-connector-j-9.1.0.jar` file located in the `lib/` directory.\n3. Run the `Main` class to start the application.\n\n#### Option 2: Run from the Terminal\n\n1. Ensure the `mysql-connector-j-9.1.0.jar` file is in the `lib/` directory.\n2. Compile the application:\n\n```bash\njavac -cp \".:./lib/mysql-connector-j-9.1.0.jar\" app/*.java dao/*.java gui/*.java models/*.java services/*.java utils/*.java -d bin/\n```\n\n3. Run the application:\n\n```bash\njava -cp \".:./bin:./lib/mysql-connector-j-9.1.0.jar\" app.Main\n```\n\n### Step 4: Add the MySQL Connector to `lib/`\n\nEnsure the `mysql-connector-j-9.1.0.jar` file is available in the `lib/` directory. If not, download it from [MySQL Connector/J](https://dev.mysql.com/downloads/connector/j/).\n\n## Usage\n1. **Login**: Enter your credentials to log in as a donor or association user.\n2. **Dashboard Navigation**:\n   - Donors: Manage your donations and view collections.\n   - Associations: View available donations and collect them.\n3. **Real-time Updates**: Changes made by donors or associations are reflected immediately in the database.\n\n## Diagrams\n\n### Class Diagram\n![Class Diagram](diagrams/classDiagram.avif)\n\n### Use Case Diagram\n![Use Case Diagram](diagrams/useCaseDiagram.avif)\n\n## Screenshots\n\n- **Welcome Page** \u003cbr\u003e\n  ![Welcome Page](screenshots/welcome-page.avif)\n\n- **Login Page** \u003cbr\u003e\n  ![Login Page](screenshots/login-page.avif)\n\n- **Register Donor Page** \u003cbr\u003e\n  ![Register Donor Page](screenshots/register-donor.avif)\n\n- **Register Association Page** \u003cbr\u003e\n  ![Register Association Page](screenshots/register-association.avif)\n\n- **Donations Page** \u003cbr\u003e\n  ![Donations Page](screenshots/donations.avif)\n\n- **Available Donations Page** \u003cbr\u003e\n  ![Available Donations Page](screenshots/available-donations.avif)\n\n- **Donor Dashboard** \u003cbr\u003e\n  ![Donor Dashboard](screenshots/donor-dashboard.avif)\n\n- **Association Dashboard** \u003cbr\u003e\n  ![Association Dashboard](screenshots/association-dashboard.avif)\n\n## Project Report\nThis project was created as part of our coursework at L'institut supérieur d'informatique (ISI Ariana) by myself and my partner Wajdi. You can view the full project report here: [Project Report](https://docs.google.com/document/d/1jTIKGPCk7zFJRlhYqlZAtrCGzYiZfsAS3IcBJLnfScE/edit?tab=t.0)\n\n## Contributions\nContributions are welcome! Feel free to fork this repository and submit pull requests with improvements or fixes.\n\n## License\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faykrimino%2Fdonation-system-java-swing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faykrimino%2Fdonation-system-java-swing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faykrimino%2Fdonation-system-java-swing/lists"}