Coder Social home page Coder Social logo

ntua-medialib's Introduction

MediaLib

About

MediaLib is a multimedia course project developed by students of the National Technical University of Athens. It is an electronic library system that allows administrators to manage and monitor library material, while users can search for books, apply for their loan, and add comments and ratings.

Screenshots

Home Page Login Page Browse Page

Members

Goal and Requirements

The primary goal of this project is to introduce students to Java programming and get them familiar with its applications in developing real-world software. It focuses on designing and implementing a user-friendly electronic library system. This project helps students learn the basics of Java, including object-oriented programming, GUI development with JavaFX, and data management. The tasks involve creating an intuitive user interface, implementing a backend system for book and user management, and ensuring efficient data storage and retrieval.

Key Learnings

Throughout this project, we learned about multimedia technologies, object-oriented programming principles, user interface design with JavaFX, and data serialization and deserialization in Java.

Dependencies

The project relies on several key dependencies:

Installation

  1. Clone the repository using Git.
  2. Ensure Java 21 and Gradle are installed on your system.
  3. Navigate to the project directory and run gradle build to build the project. Alternatively, you can run the gradlew executable, if you don't want to install Gradle.

Usage

  • The application can be started using gradle run or ./gradlew run.
  • The main interface allows users to search for books, manage loans, and access user profiles.
  • Administrators have additional functionalities like managing library materials.
  • To populate the application with random fake data:
gradle run --args=--randomize

or

./gradlew run --args=--randomize

Project Structure

This project is built using Gradle and is organized as follows:

  • app: Main application folder.
    • bin: Compiled binaries and classes.
    • build: Build artifacts.
    • src: Source code.
      • main: Main source files.
        • java: Java source files organized by package.
          • controllers: Contains Java classes for handling user interactions with the UI.
          • medialib: Core application classes, including the main entry point of the application.
          • utils: Utility classes for handling tasks like data parsing, query management, and other common functions.
        • resources: Resource files supporting the application.
          • models: JSON files (admins, books, categories, users) used for storing data models.
          • views: FXML files defining the user interface layouts for various screens within the application.
      • test: Test source files.
  • doc: Documentation and Javadocs.
  • gradle: Gradle wrapper for building the project.

Credits

  • The project uses OpenJFX for the JavaFX plugin.
  • JUnit Jupiter is used for unit testing.
  • Jackson Databind for JSON processing.
  • JavaFaker for fake data generation.
  • Google Guava for various utility functions.

Copyright

This project is licensed under the terms of the MIT License. For more details, please see the LICENCE.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.