Final Core Java Internship Report - Pubayan Sanyal
Final Core Java Internship Report - Pubayan Sanyal
Prepared by
Pubayan Sanyal
Executive Summary
This report provides details of the Industrial Internship provided by upskill Campus and The IoT Academy in
collaboration with Industrial Partner UniConverge Technologies Pvt Ltd (UCT).
This internship was focused on a project/problem statement provided by UCT. We had to finish the project
including the report in 6 weeks’ time.
My project was to develop a music player application in core Java. The application contains basic playback
controls for music like play, pause, resume, next song and previous song. It contains the functionality of
making music folders and music playlists where users can custom design their folders or playlists with
selected songs. The repeat track option exists for a song as well as a playlist. The user has to first import
local music files into his/her music library to play the local music songs. Designing a functional UI in this
project was a challenge I overcame.
This internship gave me a very good opportunity to get exposure to Industrial problems and
design/implement solution for that. It was an overall great experience to have this internship.
1 Preface..................................................................................................................................................4
2 Introduction..........................................................................................................................................6
2.1 About UniConverge Technologies Pvt Ltd........................................................................................6
2.2 About upskill Campus.....................................................................................................................10
2.3 Objective........................................................................................................................................12
2.4 Reference.......................................................................................................................................12
2.5 Glossary..........................................................................................................................................12
3 Problem Statement.............................................................................................................................13
4 Existing and Proposed solution...........................................................................................................14
5 Proposed Design/ Model.....................................................................................................................15
5.1 High Level Diagram (if applicable)..................................................................................................15
5.2 Low Level Diagram (if applicable)...................................................................................................17
5.3 Interfaces (if applicable).................................................................................................................19
6 Performance Test................................................................................................................................21
6.1 Test Plan/ Test Cases......................................................................................................................21
6.2 Test Procedure...............................................................................................................................21
6.3 Performance Outcome...................................................................................................................22
7 My learnings........................................................................................................................................23
8 Future work scope...............................................................................................................................24
My project statement is to build a music player application in core java. The user must be able to import
local music files into the music library and must be provided with basic playback controls like play, pause,
resume, stop, next song and previous song. The application must have the feature of making custom
songs music folders and music playlists and the option to repeat a single track or a playlist must be there.
The app should provide a friendly user interface for the user to do the above.
UCT has provided me the opportunity to build the above mentioned project, thus exposing me to an
industry relevant internship. I am grateful for this internship opportunity to UCT.
I learned a lot from this internship. I learned about the level of an industry relevant project. I learned
about various java concepts and about various java packages and java libraries which exist in the market
to make music playing functional in a java powered application. I learned about the various types of
I am thankful to my friends and family who supported me all along while building this project.
My message to my juniors and peers would be to keep upskilling yourself and keep learning and taking
part in internship programs.
A company established in 2013 and working in Digital Transformation domain and providing Industrial
solutions with prime focus on sustainability and RoI.
For developing its products and solutions it is leveraging various Cutting Edge Technologies e.g. Internet
of Things (IoT), Cyber Security, Cloud computing (AWS, Azure), Machine Learning, Communication
Technologies (4G/5G/LoRaWAN), Java Full Stack, Python, Front end etc.
• It enables device connectivity via industry standard IoT protocols - MQTT, CoAP, HTTP, Modbus
TCP, OPC UA
• OEE and predictive maintenance solution scaling up to digital twin for your assets.
• to unleased the true potential of the data that their machines are generating and helps to
identify the KPIs and also improve them.
• A modular architecture that allows users to choose the service that they what to start and then
can scale to more complex solutions as per their demands.
Its unique SaaS model helps users to save time, cost and money.
upskill Campus along with The IoT Academy and in association with Uniconverge technologies
has facilitated the smooth execution of the complete internship process.
The IoT academy is EdTech Division of UCT that is running long executive certification programs in
collaboration with EICT Academy, IITK, IITR and IITG in multiple domains.
2.5 Reference
[1] Java learning tutorials like javatpoint.com and gfg (geeks for geeks)
2.6 Glossary
Terms Acronym
UCT Uniconverge Technologies
GUI Graphical User Interface
Java AWT Java Abstract Window Toolkit
I had to design a music player application in core java. I will be listing the essential features below :-
1. The user has to be able to import local music files from his/her device to the music library of the
music player application in order to be able to play the music file.
2. The music library should list the songs along with added metadata of the songs like name of the
song, name of the artist, name of the album and duration of the music file.
3. There should be basic playback controls provided to the user like play music, pause, resume, stop,
next song and previous song. There should be a slider for the user to navigate through a song.
4. The user should be able to make custom folders as well as custom playlists and name them and
then select songs to be included in those folders or playlists as per their wish. The option to repeat
the entire playlist or to repeat a single track should be there.
5. There should be a user friendly interface for the user to be able to easily navigate and avail the
above mentioned functionalities.
There do exist a few solutions over the web. Different solutions use different java packages. Some have
used java AWT and swing to develop their UI and have used library classes from the java media
framework (JMF) package (javax.media) to get their music functionality. Similar to javax.media, others
have used javafx and other java music functionality developed packages to implement music play. Some
solutions are just to play a single selected music file without any importing or playlists functionality while
some solutions are to play music available from the APIs of existing large music companies in the market,
whereas others are to play local music files whose locations are included in the source program.
My proposed solution is not to use APIs of existing music companies but to give the user a feature in the
application interface to import local music files to be played in the application, thus removing the
requirement to hard code the location of local music files in the source code file, enhancing more
versatility. My design has the feature of making music folders as well as music playlists after selecting
custom songs as opposed to just playing a single music file, giving more enhancing features to the user.
The user, however will have to download local music files to be played using the application.
Value addition would be to give the user an immersive experience for his/her local music files stored in
his/her computer using the features of my music player application.
Below I am submitting my github repository link where I have upload my source code files :-
https://github.com/Pubayan-Sanyal/Java-Internship.git
Below I am submitting my github repository link where I have uploaded this internship report
itself :-
https://github.com/Pubayan-Sanyal/Core-Java-Internship-Report.git
4.3
Below I am providing diagrams of my proposed design, which would include the details of my design,
inherent from the diagrams.
Interfaces are already evident from the high level and low level diagrams of the system I provided.
I am also providing the image of the functional UI from my source code below.
This is very important part and defines why this work is meant of Real industries, instead of being just
academic project.
Constraints include device memory taken by the application, the speed at which the application
responds, accuracy and durability of the application and power consumption of the application.
Test results :-
Standard device storage (like 512GB) or more is more than sufficient. The application itself shall not
require more space than 500MB space (space for source code files), along with that it will take the
memory space required for the imported local music files. Many music files still should be accommodated
within standard local device storage. RAM of 8GB should be sufficient for proper running of the music
player, though 4GB RAM will also do.
The application shall respond as soon as we click on any feature, making it speed efficient. The
application shall not buffer with 8GB RAM or more.
Proper working features do ensure the accuracy of the application and since it runs on java source code
files, no change in the java source code files ensures the durability of the application over time.
It is not a high power consumption application as it is a simple music player and the same can be ensured
through operating system checking credentials present in the computer on which the application runs.
Test plan/test cases would be to check the functionalities of the music player application while
keeping the above mentioned constraints in mind. The requirements to be tested are the ability to
import local music files into the application, whether the import feature is causing any bugs while
file searching or not. The playback controls are to be tested whether play, pause, resume and so on
cause any technical issues. Making folders and playlists and repeating tracks smoothly are
remaining tests. Operating system resources usage tracing can be done in the computer system in
which the application runs to test the remaining constraints which are as mentioned above.
Functionalities of the application can be tested by clicking on the buttons or icons which enable the
features in the application and then tracing the working of the functionalities, as to whether they
work with any bugs, delays or runtime difficulties. Application storage can be checked in the file
manager of the host system to see the memory benchmarks of the application, as to what is the
Test performance outcome is that all features do work properly for the application. Sometimes
there could be a few execution time errors while running the java source files which need to be
removed. Possible errors could pop up during the run time of the java source files using different
IDEs and operating systems (like execution command errors) which have to be resolved. As of
memory, standard local device storage which comes integrated with host computer will do the
work. RAM of 8GB or more is sufficient for the application and power consumption is not very high.
Speed of the application is standard depending on RAM usage availability and no changes in source
code files ensure the accuracy and durability of the application.
My learnings include :-
1. Understanding the standards and the criteria of an industry level project, including constraint
complexity, how to research to complete a project and checking its performance.
2. Learning OOPs concepts and java concepts in depth which are essentially asked in job interviews and
are required to build applications.
3. Learning about various java GUI tools like the java AWT , java swing and javafx, comparison of the GUIs
created through them and their implementation and advantages. My learnings include which classes are
to be used from java GUI packages like AWT, Swing and javafx and which functions are to be called to
implement a functional GUI.
4. Applying various java frameworks to play music files in the java application created in the system, like
java media framework (javax.media package) and javafx music playing tools and which media playing
package better suits the needs of my project. Learning to play music files using java classes was
completely new to me.
5. Learning to add library files like java JAR files to my java project and integration of the library files and
java JAR files into my project, including the addition of javafx runtime components to deal with execution
command errors in the IDE terminal.
Future work scope in this project can include enhancing the features of my music player application,
making it like the music player application of large music companies. I would like to implement java
database (JDBC) in the future for more efficient music file storage after learning JDBC. I would also like to
use music APIs available over the web instead of cumbersomely asking the user to download music files
and import them locally. APIs would make user experience much more smoother. I would also like to
enhance the functioning of my features which are available in my music app, making the features work
with smoother transitions providing better user experience. Playback controls, folder making and playlist
making can be enhanced using specific library classes available in developing java packages, which I
would explore in the future.