Coder Social home page Coder Social logo

neerajsk911 / musicrecordingcompany Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 2.0 12.73 MB

Java Application using Swings API and PostgreSQL/MySQL

License: GNU General Public License v3.0

Java 100.00%
java javaswings postgresql java-se gui mysql jdbc-client entity-sets music recording company system music-recording-company swingsapi

musicrecordingcompany's Introduction

Music Recording Company System

A Java Project with PostgreSQL as backend.

Description

A GUI application created using Java Swings, AWT and JDBC Client to interface a Database Music Recording Company deployed in PostgreSQL.

Requirements

  • Java SE JDK 11+
  • PostgreSQL or MySQL for backend
  • JDBC Connector for PostgreSQL or MySQL
  • Eclipse Workspace for Java SE Developers (Optional) or any IDE that supports Java

Workflow

  • A User can login with a privilege of either Admin or Local.
  • Local user can only display the table contents.
  • Admins can insert, delete and update values as well.
  • If the validation was Unsuccessful, a failed message would be displayed.
  • All the operations return a returnCode which implies if the execution of the queries were Successful.
  • A Special case exists wherein Upon Inserting a New Song and Mapping its Musician, the Program internally calls the IncrementSong() or IncrementComposed() method which updates the Songs_Sung or Songs_Composed by the Musician and Increments it without any User Intervention.

Watchout!

  • ConnectDB.java in the package databases is responsible for retrieving the connection from the database using JDBC operations. The Database name , Username and Password as mentioned in the file is evaluated to retrieve the connection. Therefore it must be updated following the requirements of the DB.

UML Relations

  • Use Case Diagram:

image

  • Class Diagram:

image

  • ER Diagram for the Database:

image

All the UML relation are expected results. Actual Structure of the Program can possibly differ from the UML

Backend Details

  • The entity sets in the following project are:

  • Song

  • Musician

  • Album

  • Production

  • Band

  • Singer

  • Composer

  • A Many to Many relation‘Performed By’ is mapped between the entity sets Musician and Song with a Total participation of Song in ‘Performed By’ as the Minimum cardinality for the relation is expected to be >=1 as there always exists a Musician for a particular Song.

  • A Many to One relation‘Consist of’ is mapped between the entity sets Song and Album as Many songs can be a part of an Album with a Total Participation of Song in ‘Consists of’ as a Minimum of 1 song is expected to be present in an Album.

  • A One to Many relation‘Produced By’ is mapped between the entity sets Albums and Productions wherein it is expected that a particular Album is Produced By only a single Production whereas a Single Production can Produce many Albums.

  • A Many to One relation‘Orchestra By’ is mapped between the entity sets Song and Band considering a Single Band can Orchestrate multiple songs whereas a particular Song can be Orchestrated by only a Single Band.

  • The entity sets Singer and Composer serve as a Specialization for the entity set Musician.

image

Sample relations in the Database

Screenshots

  • Login Page:

image

Username: admin Password: musicdb (as inserted in loginDB table of database)

Username: regular Password: imreguser (Regular User)

  • Failed Validation:

image

  • Functionalities after logging as Admin:

image

Admin can Insert, Update and Remove the Database contents apart from Displaying

  • Functionalities after logging as Regular User:

image

  • UI Icons:

image

  • Displaying a Record from Database:

image

  • Adding a New Song:

image

  • Updating a Production details:

image

  • About Us:

image

Class Description

  • Package: core

    • Driver.java - Driver code for the Application
    • Terminate.java - Terminates the JDBC Connections
  • Package: databases

    • ConnectDB.java - Connects the JDBC Client

    • GUILoginCheck.java - Validates the Login Credentials used at Start

    • QueryEvaluator.java - Mainstream Query Processor which sends all JDBC requests

    • Interfaces:

    • dbDisplay.java - Consists of SQL Queries as methods to perform Display Operations

    • dbInsert.java - Consists of SQL Queries as methods to perform Insert Operations

    • dbUpdater.java - Consists of SQL Queries as methods to perform Update Operations

    • RecordRemover.java - Consists of SQL Queries as methods to perform Delete Operations

  • Package: gui

    • GUIManager.java - Handles the GUI for Load Animations

    • Login.java - Handles the GUI for Initial Login Screen

    • StartAdmin.java - Core GUI Handler. Manages the GUI for the Entire Application

    • Interfaces:

    • Messages.java - Handles the Success/Fail messages Displayed in the Application

    • ResourcePaths.java - Contains the Path to all the Resources used in the Application

Devs:

This Project was Created as a part of the Course Object Oriented Programming(19CSE204) by Group 6 S3 CSE-C, Amrita School of Engineering,Amritapuri

  • Neeraj S Kumar
  • Meenakshi R
  • Arathi Premkumar
  • Darshana Manojkumar
  • Jyothika Sony
Connect With Me: LinkedIn

musicrecordingcompany's People

Contributors

neerajsk911 avatar

Stargazers

 avatar

Watchers

 avatar

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.