You are on page 1of 69

A Project Report

on
College Revamp
Submitted in partial fulfillment of the requirements for
the award of the degree of
Bachelor of Technology
in
Computer Science
Submitted By:
Akshay Pandey
(100200110)
Amit Verma
(100200112)
Arun Kumar
(100200117)
Abhishek Verma
(100200104)

Under the Supervision of


Mrs. Ritu Sharma
(Assistant Professor, Department of CS)

Sir Chhotu Ram of Institute of Engineering & Technology,


Chaudhary Charan Singh University Campus, Meerut
(2023-24)
College Revamp

ACKNOWLEDGEMENT

It gives us a great sense of pleasure to present the report on the B. Tech. Project undertaken
during B. Tech. 4th Year (7th Sem.). We owe a special debt of gratitude to Mrs. Ritu Sharma
(Assistant Professor), Department of Computer Science, SCRIET, Meerut for her constant
support and guidance throughout the course of our work. Her sincerity, thoroughness and
perseverance have been a constant source of inspiration for us/me. It is only his/her cognizant
efforts that our endeavors have seen light of the day.

We also take the opportunity to acknowledge the contribution of Er. Milind, Head of
Computer Science, SCRIET, Meerut for his full support and assistance during the
development of the project.

We also do not want to miss the opportunity to acknowledge the contribution of all faculty
members of the department for their kind assistance and cooperation during the development
of our project. Finally, we acknowledge our friends for their contribution in the completion
of the project.

Akshay Pandey (100200110)

Amit Verma (100200112)

Arun Kumar (100200117)

Abhishek Verma (100200104)

Sir Chhotu Ram Institute of Engineering and Technology Page II


College Revamp

CERTIFICATE

This is to certify that the Project report entitled “College Revamp” done by Akshay Pandey
(100200110), Amit Verma (100200112), Arun Kumar (100200117), Abhishek Verma
(100200104) is an authentic work carried out by them at Sir Chhotu Ram Institute of
Engineering and Technology, CCS University, Meerut under my guidance. The matter
embodied in this project work has not been submitted earlier for the award of any degree or
diploma to the best of my knowledge and belief.

Mrs. Ritu Sharma Mrs. Ritu Sharma

(Project Guide) (Project Coordinator)

Er. Milind

HOD (CS)

SCRIET, Meerut

Sir Chhotu Ram Institute of Engineering and Technology Page III


College Revamp

DECLARATION

We hereby declare that the work presented in this project report entitled “College Revamp”,
in partial fulfillment of the requirement for the award of the degree of Bachelor of
Technology in Computer Science, submitted to Sir Chhotu Ram Institute of Engineering and
Technology, Chaudhary Charan Singh University Campus, Meerut, India is an authentic
record of our own work carried out during the period from November 2023 to December,
2023 under the guidance of Mrs. Ritu Sharma(Assistant Professor).

We hereby declare that this submission is our own work and that, to the best of our
knowledge and belief, it contains no material previously published or written by another
person nor material which to a substantial extent has been accepted for the award of any
other degree or diploma of the university or other institute of higher learning, except where
due acknowledgment has been made in the text.

Akshay Pandey (100200110)

Amit Verma (100200112)

Arun Kumar (100200117)

Abhishek Verma (100200104)

Sir Chhotu Ram Institute of Engineering and Technology Page IV


College Revamp

ABSTRACT

"College Revamp" is an innovative Android application designed to streamline the process of


registering and addressing renovation complaints in educational institutions. By providing a
user-friendly interface, this application enables staff members to register as users and lodge
complaints pertaining to buildings requiring renovation. Through the integration of image
uploading capabilities, staff can conveniently submit visual evidence of the structures in need
of attention, accompanied by detailed descriptions. The application's administrative
functionalities empower the admin to efficiently allocate tasks to the relevant personnel,
ensuring a swift response. Additionally, users and staff members can easily track the progress
of the renovation process, promoting transparency and accountability. Furthermore, the
application facilitates report generation in PDF format, enabling users to conveniently access
and download comprehensive reports. Overall, "College Revamp" offers a robust platform to
enhance the renovation management system, simplifying communication and fostering
efficient renovation practices in educational institutions.

Keywords: Android Application, College Revamp.

Sir Chhotu Ram Institute of Engineering and Technology Page V


College Revamp

Table of Contents:
DECLARATION........................................................................................................................i
CERTIFICATE..........................................................................................................................ii
ACKNOWLEDGEMENTS......................................................................................................iii
ABSTRACT..............................................................................................................................iv
LIST OF FIGURES................................................................................................................viii

CHAPTER 1: INTRODUCTION...........................................................................................9
1.1 INTRODUCTION ....................................................................................................................9
1.2 INTRODUCTION & APPLICATIONS OF ANDROID.........................................................9
1.3 WHY ANDROID?...................................................................................................................10
1.4 WHAT COMPRISES TO ANDROID.....................................................................................10
1.5 ADVANTAGES OF ANDROID.............................................................................................12
1.6 TYPES OF ANDROIDS..........................................................................................................12
1.7 DRAWBACKS OF ANDROID...............................................................................................15
1.8 OBJECTIVES..........................................................................................................................17
1.9 PURPOSE, SCOPE AND APPILCABILITY..........................................................................17

CHAPTER 2: KOTLIN.........................................................................................................18
2.1 INTRODUCTION TO KOTLIN.............................................................................................18
2.2 CHARACTERISTICS OF KOTLIN.......................................................................................18
2.3 HELLO WORLD WITH KOTLIN..........................................................................................19
2.4 APPLICATIONS OF KOTLIN...............................................................................................19
2.5 GETTING KOTLIN.................................................................................................................20
2.6 INSTALLING KOTLIN..........................................................................................................21

CHAPTER 3: ANDROID STUDIO.....................................................................................27


3.1 INTRODUCTION TO ANDROID STUDIO..........................................................................27
3.2 FEATURES..............................................................................................................................28
3.3 LANGUAGE SUPPORT.........................................................................................................29
3.4 DATA COLLECTION.............................................................................................................29

Sir Chhotu Ram Institute of Engineering and Technology Page VI


College Revamp

3.5 VERSION CONTROL.............................................................................................................29


3.6 IDE’S VS TEXT EDITORS....................................................................................................29
3.7 WHY ANDROID STUDIO?...................................................................................................30
3.8 GETTING STARTED.............................................................................................................30
3.9 INTELLISENSE......................................................................................................................30
3.10 TERMINAL.............................................................................................................................31
3.11 DEBUGGER............................................................................................................................31

CHAPTER 4: INTELLIJ IDEA...........................................................................................33


4.1 INTRODUCTION TO INTELLIJ IDEA.................................................................................33
4.2 FEATURES..............................................................................................................................34
4.2.1 DEVELOPER ERGONOMICS.............................................................................................................34
4.2.2 EASY STARTUP..................................................................................................................................34
4.2.3 PLUGINS...............................................................................................................................................35

CHAPTER 5: REQUIREMENT AND ANALYSIS...........................................................36


5.1 PROBLEM DEFINITION.......................................................................................................36
5.2 REQUIREMENT SPECIFICATION.......................................................................................36
5.3 HARDWARE AND SOFTWARE REQUIREMENT.............................................................39

CHAPTER 6: CODING........................................................................................................40

CHAPTER 7: SCREENSHOTS...........................................................................................49

CHAPTER 8: TESTING.......................................................................................................53
8.1 INTRODUCTION................................................................................................................................. 53
8.2 NEED OF TESTING.............................................................................................................................53
8.3 TEST PLANS........................................................................................................................................54
8.4 TYPE OF TESTING..............................................................................................................................54
8.4.1 UNIT TESTING....................................................................................................................................54
8.4.2 INTEGRATION TESTING...................................................................................................................54
8.4.3 SYSTEM TESTING..............................................................................................................................54
8.4.4 COMPATIBILITY TESTING...............................................................................................................54
8.4.5 GUI TESTING.......................................................................................................................................54

Sir Chhotu Ram Institute of Engineering and Technology Page VII


College Revamp

8.4.6 USABILITY TESTING.........................................................................................................................55


8.4.7 USER ACCEPTANCE TESTING........................................................................................................55
8.4.8 DOCUMENTATION TEST..................................................................................................................55
8.5 TEST CASE DESIGN...........................................................................................................................55

CHAPTER :9 SYSTEM DESIGN........................................................................................57


9.1. E-R DIAGRAM.....................................................................................................................................57
9.2. ACTIVITY DIAGRAM.........................................................................................................................58
9.3. CLASS DIAGRAM...............................................................................................................................59
9.4. USE CASE DIAGRAM.........................................................................................................................60
9.5. D-F-D.....................................................................................................................................................61

CHAPTER:10 CONCLUSION...........................................................................................................62

CHAPTER 11: FUTURE SCOPE......................................................................................................63

CHAPTER 12: REFERENCE & BIBLOGRAPHY.........................................................................64

Sir Chhotu Ram Institute of Engineering and Technology Page VIII


College Revamp

LIST OF FIGURES
Figure 1.3............................................................................................................................................10
Figure 2.5............................................................................................................................................20
Figure 3.1............................................................................................................................................27
Figure 3.10..........................................................................................................................................31
Figure 4.1............................................................................................................................................33
Figure 4.2.1.........................................................................................................................................34
Figure 4.2.2.........................................................................................................................................34
Figure 4.2.3.........................................................................................................................................35
Figure 7.1............................................................................................................................................49
Figure 7.2............................................................................................................................................49
Figure 7.3............................................................................................................................................50
Figure 7.4............................................................................................................................................50
Figure 7.5............................................................................................................................................51
Figure 7.6............................................................................................................................................51
Figure 7.7............................................................................................................................................52
Figure 9.1............................................................................................................................................57
Figure 9.2............................................................................................................................................58
Figure 9.3............................................................................................................................................59
Figure 9.4............................................................................................................................................60
Figure 9.5.1.........................................................................................................................................61
Figure 9.5.2.........................................................................................................................................61

Sir Chhotu Ram Institute of Engineering and Technology Page IX


College Revamp

CHAPTER-1
INTRODUCTION
1.1 Introduction ?
"College Revamp" emerges as an unparalleled and indispensable Android application,
meticulously designed to revolutionize and elevate the intricate process of building
renovation within educational institutions. Through its commitment to providing an
exceptionally user-friendly platform, this application not only streamlines but profoundly
enhances the entire renovation process. Its profound impact empowers both staff and users,
fostering active and inclusive participation in every aspect of the renovation journey. The
seamless integration of features ensures that every nuance of renovation need is not merely
acknowledged but meticulously addressed with unprecedented precision.

The application's dedication to inclusivity and engagement is exemplified through the


provision for staff registration and the sophisticated facility to lodge complaints. This
strategic approach goes beyond the conventional, establishing a foundation for a responsive
and participatory renovation management system. The profound capacity to register as staff
members and lodge complaints serves as a cornerstone for a responsive and participatory
renovation management system, where every voice is heard, and every renovation
requirement is met with unwavering attention.

A pivotal and monumental feature of "College Revamp" lies in its capacity to facilitate
seamless communication between staff and administrators. This is achieved through the
innovative option to upload images and intricate, detailed descriptions of structures requiring
renovation. This functionality not only creates a dynamic channel for information exchange
but also empowers administrators to allocate tasks promptly to the most qualified individuals.
The result is an unprecedented level of efficiency in the distribution of responsibilities,
fundamentally optimizing the renovation workflow with a level of precision that is
monumental.

Moreover, the application introduces a comprehensive and monumental tracking system,


empowering users and staff to meticulously monitor the progress of ongoing renovation
projects. This feature transcends conventional tracking; it establishes a paradigm of

Sir Chhotu Ram Institute of Engineering and Technology Page 9


College Revamp
transparency and accountability that sets a new standard. Stakeholders, from the smallest
classroom to the grandest auditorium, can stay well-informed in real-time about the
intricacies and nuances of their reported issues, fostering not just confidence but a profound
sense of engagement in the responsiveness of the renovation process.

"College Revamp" transcends expectations by extending its functionality beyond progress


tracking. It introduces a monumental feature: the ability to download reports in PDF format.
This feature provides users and staff not just with evidence but with a tangible and
comprehensive record of the renovation work undertaken. The significance of this cannot be
overstated; it not only facilitates efficient record-keeping but elevates the sharing of project
updates among stakeholders to a monumental scale.

In essence, "College Revamp" stands as a monumental and transformative force in the realm
of renovation management within educational institutions. Its user-centric design, seamless
communication features, robust tracking system, and tangible evidence provision through
PDF reports collectively contribute to an enhanced and expansive renovation experience.
This application is not merely a tool; it is a monumental cornerstone, reshaping how
educational institutions approach and execute their renovation projects with a magnitude that
is now amplified tenfold.

1.2 Introduction & Applications of Android

The Android operating system has the most installed bases of all the different mobile
platforms worldwide. In more than 190 countries around the world, Android powers
hundreds of millions of mobile devices. By the end of 2021, it had around 71% of the global
market share, and this trend is gaining momentum daily. For the first time, Android was
created by a firm called Open Handset Alliance and is based on a modified Linux kernel and
other open-source software. In the beginning, Google financed the project, then in 2005, it
fully acquired the business. The first Android-powered handset entered the market in
September 2008. Because of the extensive feature set it offers, Android is the industry leader
in mobile operating systems. It's user- friendly, has a sizable community behind it, allows for
more customization, and many businesses produce Android-compatible smartphones.
Because of this, the market has seen a rapid rise in the demand for creating Android mobile
applications. As a result, businesses now want knowledgeable developers with the

Sir Chhotu Ram Institute of Engineering and Technology Page


10
College Revamp
appropriate skill set. Android was initially envisioned as a mobile operating system.
However, with the development of code libraries and its acceptance by programmers in
diverse fields, Android has evolved into a set of software that runs on all gadgets, including
tablets, wearables, set-top boxes, smart TVs.

 The Android Software Development Kit is typically used to create Android applications,
which are typically created in Java.

 Once they have been created, Android applications are simple to bundle and sell online via
stores like Google Play, SlideME, Opera Mobile Store, Mobango, F-droid, and the Amazon
Appstore

 Over 190 nations around the world, including hundreds of millions of mobile devices,

run Android. It has the most mobile devices deployed and is expanding quickly. Over a
million new Android devices are activated every day worldwide.

Sir Chhotu Ram Institute of Engineering and Technology Page


11
College Revamp

1.3 Why Android?

Fig.1.3: Characteristics of Android

1.4 What Comprises to Android?

There are following four main components that can be used within an Android application:

Sr. No. Components & Description

Activities
They dictate the UI and handle the user interaction to the smart phone screen.

Services
They handle background processing associated with an application.

Sir Chhotu Ram Institute of Engineering and Technology Page 12


College Revamp

Broadcast Receivers
They handle communication between Android OS and applications.

Content Providers
They handle data and database management issues.

Table 1

There are additional components which will be used in the construction of above-mentioned
entities, their logic, and wiring between them. These components are:

Sr. No. Components & Description

Fragments
Represents a portion of user interface in an Activity.

Views
UI elements that are drawn on-screen including buttons, lists forms etc.

Layouts
View hierarchies that control screen format and appearance of the views.

Intents
Messages wiring components together.

Resources
External elements, such as strings, constants and drawable pictures.

Manifest
Configuration file for the application.

Table 2

Sir Chhotu Ram Institute of Engineering and Technology Page 13


College Revamp

1.5 Advantages of Android

Following are some main advantages of Artificial Intelligence:


 Android is totally open because it is a Linux based open source
 Multitasking
 Excellent software support
 It gives you a better notification
 It let you choose your hardware
 It has a better app market
 Frequent OS updated
 A more mature platform
 Android type of phone can also function as a router to share internet
 It will be more secure than i-phone OS
 All application are treated equal
 Easy to access the android app in the market
 Can installed and modify RAM
 An Android-based product will cheaper than its propriety
 Support all google services

1.6 Types of Androids:

Android 1.0. Released Sept. 23, 2008. Included a suite of Google apps, including Gmail,
Maps, Calendar and YouTube.

Android 1.5 (Cupcake). Released April 27, 2009. Introduced an onscreen virtual keyboard
and the framework for third-party app widgets.

Android 1.6 (Donut). Released Sept. 15, 2009. Introduced the ability for the OS to run on
different screen sizes and resolutions; added support for CDMA networks.

Sir Chhotu Ram Institute of Engineering and Technology Page 14


College Revamp

Android 2.0 (Eclair). Released Oct. 26, 2009. Added turn-by-turn voice navigation, real-
time traffic information, pinch-to-zoom capability.

Android 2.2 (Froyo). Released May 20, 2010. Added dock at the bottom of the home screen
and voice actions, which allows users to tap an icon and speak a command. Also introduced
support for Flash to the web browser.

Android 2.3 (Gingerbread). Released Dec. 6, 2010. Introduced black and green into the UI.

Android 3.0 to 3.2 (Honeycomb). Released Feb. 22, 2011. This release was exclusive to
tablets and introduced a blue, space-themed holographic design.

Android 4.0 (Ice Cream Sandwich). Released Oct. 18, 2011. Introduced a unified UI to
both tablets and smartphones; emphasized swiping as a navigational method.

Android 4.1 to 4.3 (Jellybean). Released July 9, 2012, Nov. 13, 2012, and July 24, 2013,
respectively. Introduced Google Now, a day planner service. Added interactive notifications
and improved voice search system.

Android 4.4 (KitKat). Released Oct. 31, 2013. Introduced lighter colors into the UI, along
with a transparent status bar and white icons.

Android 5.0 (Lollipop). Released Nov. 12, 2014. Incorporated a card-based appearance in
the design with elements such as notifications and Recent Apps list. Introduced hands-free
voice control with the spoken "OK, Google" command.

Android 6.0 (Marshmallow). Released Oct. 5, 2015. This release marked Google's adoption
of an annual release schedule. Introduced more granular app permissions and support for
USB- C and fingerprint readers.

Android 7.0 and 7.1 (Nougat). Released Aug. 22, 2016 and Oct. 4, 2016, respectively.
Introduced a native split-screen mode and the ability to bundle notifications by app.

Sir Chhotu Ram Institute of Engineering and Technology Page 15


College Revamp

Android 8.0 and 8.1 (Oreo). Released Aug. 21, 2017 and Dec. 5, 2017, respectively. These
versions introduced a native picture-in-picture (PIP) mode and the ability to snooze
notifications. Oreo was the first version to incorporate Project Treble, an effort by OEMs to
provide more standardized software updates.

Android 9.0 (Pie). Released Aug. 6, 2018. This version replaced Back, Home and Overview
buttons for a multifunctional Home button and a smaller Back button. Introduced
productivity features, including suggested replies for messages and brightness management
capabilities.

Android 10 (Android Q). Released Sept. 3, 2019. Abandoned the Back button in favor of a
swipe-
based approach to navigation. Introduced a dark theme and Focus Mode, which enables users
to limit distractions from certain apps.

Android 11 (Red Velvet Cake). Released Sept. 8, 2020. Added built-in screen recording.
Created a single location to view and respond to conversations across multiple messaging
apps. This version also updated the chat bubbles so users can pin conversations to the top of
apps and screens.

Android 12 (Snow Cone). Released Oct. 4, 2021. Added customization options for the user
interface. The conversation widget let users store preferred contacts on their home screens.
Added more privacy options, including sharing when apps access information such as
camera, photos or microphone.

Android 12L. Released March 7, 2022.The L stands for larger screens. This update aimed to
improve the user interface and optimize for the larger screen of a tablet, foldable or
Chromebook. This update added a dual-panel notification center for tablets and foldables.

Android 13 (Tiramisu). Released Aug. 15, 2022. Included more customizable options
including color, theme, language and music. Security updates included control over
information apps can access, notification permission required for all apps and clearing of

Sir Chhotu Ram Institute of Engineering and Technology Page 16


College Revamp

personal information on clipboard. This update enables multitasking by sharing of messages,


chats, links and photos across multiple Android devices -- including phones, tablets and
Chromebooks.

1.7 Drawbacks Of Android


1. APPS REMAIN ACTIVE IN THE BACKGROUND
In the earlier system of Android, many applications still operate in the background but also
move to the forefront as they would like. But the latest edition of Android applications
cannot immediately come to the fore. When specific applications operate in the background,
they drain a cell battery, and the phone’s power disappears quickly.

2. DEVELOPERS ARE HAVING A ROUGH TIME


Training and designing Android applications is challenging since there are many display
sizes and making the software adaptive to these display sizes is difficult for designers.
Developers need to compose more code because it’s hard to fix the software for final
distribution. Also, it’s tough to build complicated applications, and it’s tough to create
sophisticated animation.

3. LOW SPECIFICATION SMARTPHONES RUN SLOWLY


Android is an extensive operating system that uses many resources, and some standard
applications even come with the operating system. Therefore, lower specification
smartphones run slowly. Whenever you load many applications on these machines, your cell
phone can become reactive or overheat quickly.

4. DEFENSE FROM VIRUSES


Android isn’t effective at protecting the infection. Users can import and install software from
other foreign sites, and such applications might contain viruses and could have stolen the
files and records. This is also found that some of the games in the play store carry a virus.

5. MANY ADVERTISEMENTS IN APPS


Several Android applications are available for free download; however, they arrive with
plenty of advertisements that appear on the application screens or ads while you
operate some

Sir Chhotu Ram Institute of Engineering and Technology Page 17


College Revamp

function in the application. This is annoying to the user, and the user needs to purchase a
software authorization to delete advertisements or disable an app.
6. NOT HELPFUL TO AGED PERSONS
Old users have a hard time utilizing Android smartphones due to sophisticated touch
displays. They might have had an issue with their vision and who haven’t used smartphone
Android earlier.

7. GOOGLE ACCOUNT NEEDED


You require a Gmail profile to install applications via the play store. You will require a
Gmail profile to use few Google apps as well. Whether you lose the Gmail Address, your
smartphone will be encrypted, and you have to find your Gmail address to activate it.

8. BAD CONTENT OF SOFTWARE


Most applications throughout the app store are of low quality, and certain apps try to make
money by showing advertisements and have little need for consumers. Any applications have
not been upgraded for several years, which will impact people who are updating their
software.

9. THE CONCEPT OF A NEW APPLICATION IS COMPLICATED


There are fewer opportunities for developers to render apps that aren’t yet accessible. When
all kinds of software are already available within the app store, it’s hard for new businesses
and entrepreneurs to reach the Android industry. But the developer is still able to build a
secure trading bitcoin evolution to help you in your business.

10. GOOGLE IS STRICT FOR SOFTWARE DEVELOPERS


When Google detects some issues with your software, it would be very permissive and might
cancel your developer profile.

11. SOFTWARE UPDATE


The software update is one of the disadvantages of the android phone. If you are running an
old android smartphone, then you cannot update your smartphone to a newer version of
Android. There are a bunch of smartphones accessible in the market with the older android

Sir Chhotu Ram Institute of Engineering and Technology Page 18


College Revamp

versions. If you want to enjoy the latest version of Android, then you have to buy the new
flagships of the android smartphone.

1.8 OBJECTIVES

The Android operating system is a mobile operating system that was developed by Google to
be primarily used for touchscreen devices, cell phones, and tablets. Its design lets users
manipulate the mobile devices intuitively, with finger movements that mirror common
motions, such as pinching, swiping, and tapping. Google also employs Android software in
televisions, cars, and wristwatches—each of which is fitted with a unique user interface.

1.9 PURPOSE, SCOPE AND APPILCABILITY


Purpose
Android is a mobile operating system developed by Google. It is based on a modified version
of the Linux kernel and other open-source software and is designed primarily for touchscreen
mobile devices such as smartphones and tablets.

It allows Android users to select, and download applications developed by third party
developers and use them.

Scope
Android offers a unified approach to application development for mobile devices which
means developers need only develop for Android, and their applications should be able to run
on different devices powered by Android.

Applicability
Android is a powerful operating system, and it supports a large number of applications on
Smartphones. These applications are more comfortable and advanced for users. The
hardware that supports android software is based on the ARM architecture platform. The
android is an open-source operating system that means that it’s free and anyone can use it.
Android has got millions of apps available that can help you manage your life one or another
way and it is available at low cost in the market for that reason android is very popular.

Sir Chhotu Ram Institute of Engineering and Technology Page 19


College Revamp

CHAPTER-2
Kotlin

2.1 Introduction to Kotlin.


Kotlin is a statically typed, general-purpose programming language developed by JetBrains,
that has built world-class IDEs like IntelliJ IDEA, PhpStorm, Appcode, etc. It was first
introduced by JetBrains in 2011 and a new language for the JVM. Kotlin is object-oriented
language, and a “better language” than Java, but still be fully interoperable with Java code.
Kotlin is sponsored by Google, announced as one of the official languages for Android
Development in 2017.

Why to Learn Kotlin?


We all know about the fact that Java is the best possible language for Android application
development until Kotlin comes into the light. With all the flaws, Java was used and is being
mostly used by developers and companies to build Android apps. But after Google
announced Kotlin as an official language for Android development which has overcome the
flaws in Java, Kotlin has become the highly preferred platform for development. It is now
high time that you switch to Kotlin and leave Java behind for good.

2. 2 Characteristics of Kotlin
Following are important characteristics of Kotlin Programming:
 Android Open-Source Project so we can customize the OS based on our requirements.
 Android supports different types of connectivity for GSM, CDMA, Wi-Fi, Bluetooth, etc.
for telephonic conversation or data transfer.
 Using wifi technology we can pair with other devices while playing games or using other
applications.
 It contains multiple APIs to support location-tracking services such as GPS.
 We can manage all data storage-related activities by using the file manager.
 It contains a wide range of media supports like AVI, MKV, FLV, MPEG4, etc. to play or
record a variety of audio/video.
 It also supports different image formats like JPEG, PNG, GIF, BMP, MP3, etc.

Sir Chhotu Ram Institute of Engineering and Technology Page 20


College Revamp

 It supports multimedia hardware control to perform playback or recording using a camera


and microphone.
 Android has an integrated open-source WebKit layout-based web browser to support User
Interfaces like HTML5, and CSS3.
 Android supports multi-tasking means we can run multiple applications at a time and can
switch between them.
 It provides support for virtual reality or 2D/3D Graphics.

2.3 Hello World using Kotlin.


Hello, World! is the first basic program in any programming language. Let’s write the first
program in Kotlin programming language.
The “Hello, World!” program in Kotlin: Open your favorite editor notepad or notepad++ and
create a file named firstapp.kt with the following code.
/ Kotlin Hello World Program
fun main(args: Array<String>) {
println("Hello, World!")
}
You can compile the program in the command-line compiler.
$ kotlinc firstapp.kt
Now, Run the program to see the output in a command-line compiler.
2.4 Applications of Kotlin
1) Kotlin is concise, saving time that you'd otherwise spend writing boilerplate code in
Java. You can convert a Java file into a Kotlin file with just a script.
2) Kotlin has no runtime overhead. Sometimes, adding features to a language means it has
more overhead, which lowers its performance. Not so with Kotlin.
3) Kotlin has a large community. If you ever get stuck, you can easily find other developers
to help you on coding forums and social networks.
4) Kotlin streamlines asynchronous programming. Making network and database calls
asynchronously in Java is clumsy and painful. Kotlin has coroutines that make asynchronous
programming simple and efficient.
5) Kotlin handles nulls. A null in Java can crash a program if you haven't prepared for it. In

Sir Chhotu Ram Institute of Engineering and Technology Page 21


College Revamp

Kotlin, you can add a simple operator to variables that may be null to prevent these crashes.
6) Kotlin can run on multiple platforms. Kotlin can run anywhere Java runs, so you can use it
to build cross-platform apps.
7) It's easy to switch to Kotlin. Kotlin is fully compatible with Java, so you don't have to
change all your code at once. You can slowly migrate an application to use Kotlin.

2.5 Getting Kotlin


To get started, first download and install the latest version of IntelliJ IDEA

Create a project

 In IntelliJ IDEA, select File | New | Project.


 In the panel on the left, select New Project.
 Name the new project and change its location if necessary. Select the Create Git
repository checkbox to place the new project under version control. You will be able to do it
later at any time.
 From the Language list, select Kotlin.

Fig 2.5: Kotlin on IntelliJ Editor

Sir Chhotu Ram Institute of Engineering and Technology Page 22


College Revamp

 Select the IntelliJ build system. It's a native builder that doesn't require downloading
additional artifacts.

If you want to create a more complex project that needs further configuration, select Maven or
Gradle. For Gradle, choose a language for the build script: Kotlin or Groovy

 From the JDK list, select the JDK that you want to use in your project.
1. If the JDK is installed on your computer, but not defined in the IDE, select Add JDK and
specify the path to the JDK home directory.
2. If you don't have the necessary JDK on your computer, select Download JDK.
 Enable the Add sample code option to create a file with a sample "Hello
World!" application.

2.6 Installing Kotlin

The purpose of the first lab is to install Kotlin on your computer, to learn how to use a
command line, and to run Kotlin from the command line.

The explanations below are for Windows. If you use Mac OSX or Linux, please check the
remarks at the end of this page.

Start a command line

From the Windows menu, find the terminal program (under "Accessories"). Alternatively,
press Windows+R and type cmd to start the terminal program.

Install Java if necessary

Type java -version in your terminal. If your output indicates that you have Java 1.6 or higher
installed, then you are done. Otherwise, you need to install Java. Click on Windows
Online at www.java.com.

Restart your terminal program after the Java installation and check that Java is now on your
computer.

Sir Chhotu Ram Institute of Engineering and Technology Page 23


College Revamp

Install Kotlin

Download the file kotlin-compiler-1.2.21.zip from the Kotlin download page. and save it to
your desktop.

Please use exactly version 1.2.21 of the compiler, so that all CS109 students are running the
exact same environment.

Extract the zip file to C:\Program Files. You need to add the kotlinc\bin directory to your
command line path - the TAs will show you how.

Restart your terminal program, and check that you can start Kotlin by saying kotlinc.

Try some simple interactive Kotlin statements, such as

$ kotlinc
Welcome to Kotlin version 1.2.21 (JRE 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
Type :help for help, :quit for quit
>>> 7 * 3
21
>>> 7 * Math.PI
21.991148575128552
Install additional files

Download cs109-additions.zip and extract the files in exactly the same place where you
extracted the Kotlin archive.

This package contains:

 A few command line commands called ktc, kts, kt, and kttest, that will make your life easier
by managing the dependencies on the libraries we use, and by organizing all class files in a
subdirectory of your source directory.

Sir Chhotu Ram Institute of Engineering and Technology Page 24


College Revamp

 Two modules (cs109 and cs109ui) that make it possible to write programs with a simple
graphical user interface without learning about the Swing library or worrying about event-
based programming.
 Two libraries for unit test from junit.org.
 A tool for converting Java classes to the Android DEX format, for our Android Mini-App
framework. This makes it possible to write simple Android apps without having to install the
Android SDK.
 Here are few checks you can perform to see if everything works:

 Say ktc on the command line. The interactive Kotlin mode should start.
 Download uitest1.kt. Run it from the command line:
 $ ktc uitest1.kt
 $ kt Uitest1Kt

A new window should appear.


 Try importing junit:
 $ ktc
 Welcome to Kotlin version 1.2.21 (JRE 1.8.0_151-8u151-b12-0ubuntu0.16.04.2-b12)
 Type: help for help, :quit for quit
 >>> import org.junit.Test

For a more complete test of junit, download the example test suite test1.kt, compile it, and run
it:

$ ktc test1.kt
$ kttest AdditionTest
JUnit version 4.12
.
Time: 0.003

OK (1 test)

The output should show that everything went alright and that all tests were passed.

Sir Chhotu Ram Institute of Engineering and Technology Page 25


College Revamp

Install Notepad++

You can use any editor you like for writing Kotlin programs. Perhaps you are already using
VIM or Emacs—then keep using them.

Otherwise, we recommend that you use Notepad++. Download and install:

 For 32-bit Windows: npp.7.3.2.Installer.exe


 For 64-bit Windows: npp.7.3.2.Installer.x64.exe

Finally, download the file kotlin.xml and save it to your desktop. Start Notepad++, and select
"User defined language" from the "Language" menu. Press the "Import" button, and select
the kotlin.xml file. After the message "Import successful", terminate Notepad++.

When you start Notepad++ again, you should see "Kotlin" in the "Language" menu, and the
language should automatically switch to Kotlin when you open a file with extension kt or kts.

Write a Kotlin script

Open your editor, and write the following small program:

println("Your arguments are:")

for (i in 0 until args.size)


{ println("$i: ${args[i]}")
}
Save it as a file named args.kts.

Try running this program from the command line, with arguments, such as:

$ kts args.kts Hello World!


Try a larger program

Finally, you may want to try running a larger program, such as master mind.kts.

Sir Chhotu Ram Institute of Engineering and Technology Page 26


College Revamp

Mac OSX and Linux users

There are several ways to install Kotlin on Unix systems (including OSX), but I strongly
recommend that you simply use the same zip file kotlin-compiler-1.2.21.zip linked above, to
make sure that you have an environment compatible with the class environment (I have
tested both on Linux and OSX).
To summarize:
 Install Java (using your package manager, or directly from Oracle);
 Unzip kotlin-compiler-1.2.21.zip in a suitable place, for instance in your home directory, or
in ~/Library on OSX;
 Unzip cs109-additions.zip in the same place;
 Add the kotlinc/bin directory to your path;
 Try the tests above from the Unix command line.

You can use any editor you like (but don't use an integrated development environment like
Eclipse or IntelliJ in this course).

When you sign up to Alan Studio, Alan adds free interactions to your balance to let you get
started. To get additional interactions to your balance, link your Alan account with your
GitHub account and give stars to Alan repositories.

You can use any editor you like (but don't use an integrated development environment like
Eclipse or IntelliJ in this course).

Step 1: Create a starter Android app

For this tutorial series, we will be using a simple Android app with a tabbed layout. Let’s
create it.

 Open the IDE and select to start a new Android project.


 Select Tabbed Activity as the project template. Then click Next.
 Enter a project name, for example, MyApp, and select the language: Java or Kotlin.

Sir Chhotu Ram Institute of Engineering and Technology Page 27


College Revamp

 The minimum possible Android SDK version required by the Alan SDK is 21. In
the Minimum SDK list, select API 21. Then click Finish.

Step 2: Integrate the app with Firebase

 Open the build.gradle file at the module level.

 In the dependencies block, add the dependency configuration for the firebase Android SDK.

Do not forget to sync the project.


 Next, we need to add the XML layout for the firebase button to the main app activity. Open
the main_activity.xml file, switch to the Code view and add layout to it.

Sir Chhotu Ram Institute of Engineering and Technology Page 28


College Revamp

CHAPTER-3
ANDROID
STUDIO
3.1 Introduction to Android
Android Studio is a freeware source-code editor made by Microsoft for Windows, Linux
and macOS. Features include support for debugging, syntax highlighting, intelligent code
completion, snippets, code refactoring, and embedded Git. Users can change the theme,
keyboard shortcuts, preferences, and install extensions that add additional functionality.
Microsoft has released most of Android Studio's source code on the microsoft/Android
Studio (Code- OSS) repository of GitHub, under the permissive MIT License, while the
releases by Micro-software freeware.
In the Stack Overflow 2019 Developer Survey, Android Studio was ranked the most popular
developer environment tool, with 50.7% of 87,317 respondents reporting that they use it.
Android Studio was first announced on April 29, 2015, by Microsoft at the 2015 Build
conference. A Preview build was released shortly thereafter.

On November 18, 2015, Android Studio was released under the MIT License, having its
source code available on GitHub. Extension support was also announced. On April 14, 2016,
Android Studio graduated from the public preview stage and was released to the Web.

Fig 3.1 Android Studio in Launching

Sir Chhotu Ram Institute of Engineering and Technology Page 29


College Revamp

3.2 Features

Android Studio is a source-code editor that can be used with a variety of programming
languages, including Java, JavaScript, Go, Node.js, Python and C++. It is based on the
Electron framework, which is used to develop Node.js Web applications that run on the Blink
layout engine.Android Studio employs the same editor component (codenamed "Monaco")
used in Azure DevOps (formerly called Android Studio Online and Android Studio Team
Services).

Instead of a project system, it allows users to open one or more directories, which can then be
saved in workspaces for future reuse. This allows it to operate as a language-agnostic code
editor for any language. It supports several programming languages and a set of features that
differs per language. Unwanted files and folders can be excluded from the project tree via the
settings.

Many Android Studio features are not exposed through menus or the user interface but can
be accessed via the command palette. Android Studio can be extended via extensions,
available through a central repository. This includes additions to the editor and language
support. A notable feature is the ability to create extensions that add support for new
languages, themes, and debuggers, perform static code analysis, and add code linters using
the Language Server Protocol.

Android Studio includes multiple extensions for FTP, allowing the software to be used as a
free alternative for web development. Code can be synced between the editor and the server,
without downloading any extra software.

Android Studio allows users to set the code page in which the active document is saved, the
newline character, and the programming language of the active document. This allows it to
be use done any platform, in any locale, and for any given programming language.
3.3 Language support
Out-of-the-box, Android Studio includes basic support for most common programming

Sir Chhotu Ram Institute of Engineering and Technology Page 30


College Revamp

languages. This basic support includes syntax highlighting, bracket matching, code folding,

Sir Chhotu Ram Institute of Engineering and Technology Page 31


College Revamp

and configurable snippets. Android Studio also ships with IntelliSense for JavaScript,
TypeScript, JSON, CSS, and HTML, as well as debugging support for Node.js. Support for
additional languages can be provided by freely available extensions on the Android Studio
Marketplace.

3.4 Data collection


Android Studio collects usage data and sends it to Microsoft, although this can be disabled.
In addition, because of the open-source nature of the application, the telemetry code is
accessible to the public, who can see exactly what is collected.

3.5 Version control


Source control is a built-in feature of Android Studio. It has a dedicated tab inside of the
menu bar where you can access version control settings and view changes made to the
current project. To use the feature, you must link Android Studio to any supported version
control system (Git, Subversion, Perforce, etc.). This allows you to create repositories as well
as make push and pull requests directly from the Android Studio program.

3.6 IDEs Android Studio Text Editors


First, let’s establish some context. For developers of many languages, standard practice
dictates the use of an IDE (Integrated Development Environment). IDEs are generally
heavyweight, fully featured code editors that include things like build/compiler setup,
debuggers, code analysis tools, and more. Examples of IDEs include Eclipse, Android Studio,
and X-Code.
By contrast, web developers have traditionally utilized text editors, which are very
lightweight by comparison and have historically not shipped with many features. There exist
IDEs for web dev (the most popular of which is probably WebStorm by JetBrains), but text
editors such as Notepad++, Vim, Emacs, Sublime Text, and ANDROID STUDIO are still
dominant.
3.7 Why Android Studio?
What makes the ANDROID STUDIO special? Microsoft’s Android Studio is a text editor
with powerful IDE-like features. Side note: ANDROID STUDIO is a totally separate product
from Android Studio the IDE.

Sir Chhotu Ram Institute of Engineering and Technology Page 32


College Revamp

In terms of what is available right now, it seems like ANDROID STUDIO is a “best of both

Sir Chhotu Ram Institute of Engineering and Technology Page 33


College Revamp

worlds” option between IDEs and Text Editors. Here are some more reasons why we’re using
ANDROID STUDIO:
 ANDROID STUDIO is simple to download and install on any OS.
 It is completely free.
 It is non-opinionated and open source, with non-proprietary standards.
 You can bring your favorite key bindings from Sublime, Vim, etc. with you.
 It’s easy to customize and has many useful extensions.
 It has powerful IDE-like features including a built-in debugger and terminal.

3.8 Getting Started


 If you haven’t already, download ANDROID STUDIO and install it by dragging it into the
Applications folder.
 Open ANDROID STUDIO, and type command (⌘) + shift + p.
 Start typing the word “hell”.

 Select Install 'code' command in PATH. This will enable you to open Android Studio from any
terminal window by typing code. You can also pass an argument, such as the current
folder(.), to open it with Android Studio.

3.9 IntelliSense
Simply put, Android Studio is excellent at code completion. By default, it will read special
comments called document strings to guide you about function arguments and variable types
on the fly. For JavaScript, Android Studio utilizes the JS Doc standard out of the box.
Android Studio will also investigate imported software modules (such as node modules when
developing in Node.js) and give you information about function argument types and
descriptions. It also remembers what types of variables are and guides you through available
methods, etc.

Sir Chhotu Ram Institute of Engineering and Technology Page 34


College Revamp

3.10 Terminal
ANDROID STUDIO has a built-in terminal which, by default, is exactly the same as
whatever your default terminal is (e.g., zsh, bash, etc.). The normal node and python
commands, etc. work normally, and things like Virtual Environments will also apply. You
can have multiple nested terminal sessions open as well.
You can open the ANDROID STUDIO terminal with control (^) + backtick (`), or simply
click on the bottom left of the screen.

Fig 3.10: Android Studio Editor


Git Integration:
ANDROID STUDIO also automatically tracks source control changes for any project that is
a valid git repository. Modified files will show up with an M next to them, while untracked
(new) files will get a U. The colors will change depending on the git status.
You can even stage, commit, and push from the source control view (control (^) + shift + g)
3.11 Debugger
The built-in ANDROID STUDIO Debugger for Node.js is very powerful, and it can be
expanded with the popular Chrome Debugger extension. However, this requires a server to

Sir Chhotu Ram Institute of Engineering and Technology Page 35


College Revamp

be running and is outside the scope of this blog post (perhaps in the future we can have a blog
post about Debugging in ANDROID STUDIO).
That said, if you are still interested, check out articles for debugging Node here and for React
here. And here is the full reference for Node debugging.

Packages Installation:
We can install packages using (pip) command.
E.g.- pip install pyttsx3 (Through CMD as a ADMIN or By ANDROID STUDIO Terminal).

Sir Chhotu Ram Institute of Engineering and Technology Page 36


College Revamp

CHAPTER –4
IntelliJ IDEA
4.1 Introduction to IntelliJ IDEA
IntelliJ IDEA is a Java IDE developed by JetBrains - a software development company based
on Praque, Czech Republic. The company was formerly named IntelliJ - you know it if you
used IntelliJ some years ago. As its name implies, the IDE is designed to be intelligent -
focus on providing smart code auto completion, insight, and analysis in every context - to
improve developer’s experience and productivity. The first version was released in
2001.IntelliJ IDEA is written in Java so it is a cross-platform IDE - meaning that you can use
it on Windows, Mac or Linux. JetBrains provides two editions for this Java IDE:
- An open-source and free edition called IntelliJ IDEA Community.
- A commercial edition called IntelliJ IDEA Ultimate.
The Community edition is very limited in features: you can develop only Java desktop and
Android applications. Whereas the Ultimate edition supports development of a wide range of
Java technologies and frameworks. You can use the Ultimate edition for a 30-day trial period
and then pay for it.
In 2014, Google announced Android Studio which is based on the open-source edition of
IntelliJ IDEA. In 2015, JetBrains released the first version of Kotlin - a new programming
language for the JVM (Java Virtual Machine). Kotlin is aimed to be a “better language” than
Java. And in 2017, Kotlin becomes the official language for Android development.

Fig 4.1: IntelliJ Terminal

Sir Chhotu Ram Institute of Engineering and Technology Page 37


College Revamp

4.2 Features:
4.2.1 Developer ergonomics
Every aspect of IntelliJ IDEA is built to provide you with a seamless out-of-the-box
experience. It provides quick access to all the features and integrated tools that are important
to your work, as well as a wide range of customization options. You can fine-tune everything
to support your workflow: set shortcuts, install plugins, customize the interface to your
liking, and more.

Fig 4.2.1: IntelliJ Idea on Mac


4.2.2 Easy start up

Fig 4.2.2: IntelliJ IDE Editor

Sir Chhotu Ram Institute of Engineering and Technology Page 38


College Revamp

Even if this is your first time using an IDE, it shouldn’t take you long to get up and running
with your first project. In the New Project wizard, you can set the project type, Java version,
and supported build tools (like Maven and Gradle); IntelliJ IDEA will configure all the
remaining settings for you. This means you’ll be able to start working just moments after
launching IntelliJ IDEA. You can also open projects, import existing Maven or Gradle
projects, and pull projects from Version Control Systems.
IntelliJ IDEA has keyboard shortcuts for pretty much everything, from viewing recent files to
running and debugging your project. One universally applicable shortcut is double Shift
(Search Everywhere). It allows you to find just about any item inside or outside of the
project. The range of your search can vary from files, actions, classes, and symbols to
settings, UI elements, and even Git history.

4.2.3 Plugins
If you'd like to supplement the core functionality of the IDE with additional features,
you can extend IntelliJ IDEA with plugins. We support an extensive plugin ecosystem
that meets practically all of the needs a developer might have.

Fig 4.2.3: IntelliJ Idea Files

Sir Chhotu Ram Institute of Engineering and Technology Page 39


College Revamp

CHAPTER-5
REQUIREMENT AND ANALYSIS
System Analysis is about complete understanding of existing systems and finding where the
existing system fails. The solution is determined to resolve issues in the proposed system. It
defines the system. The system is divided into smaller parts. Their functions and inter
relation of these modules are studied in system analysis. The complete analysis is below.

5.1 Problem definition


College Revamp is an innovative android application designed to streamline building
renovation processes within educational institutions. The app offers two main features: staff
registration and complaint registration. Staff members can register themselves within the app,
gaining access to various functionalities. One of these is the ability to submit renovation
requests by uploading images and providing detailed descriptions of the structures in need of
renovation.
Upon receiving a complaint, the admin, who oversees the renovation operations, reviews the
submission and assigns the necessary tasks to the appropriate individuals. This ensures
efficient allocation of resources and timely completion of renovations. The app also enables
users and staff to track the progress of ongoing renovations, providing transparency and
accountability.
5.2 REQUIREMENT SPECIFICATION
 User Registration: The application should provide a user registration feature allowing staff
members to create an account and access the complaint submission and tracking
functionalities.

 Complaint Submission: The staff should be able to submit a complaint through the
application by uploading images and providing descriptions of the building or structure in
need of renovation.
 Admin Task Assignment: The application's admin panel should allow the administrator to
assign the renovation tasks to the relevant personnel based on the received complaints.

Sir Chhotu Ram Institute of Engineering and Technology Page 40


College Revamp

 Progress Tracking: Users and staff members should be able to track the progress of the
assigned tasks within the application to stay updated on the status of the renovation process.

 Report Generation: The application should generate downloadable reports in PDF format,
containing relevant information about the completed renovation tasks, for users and staff
members to access.

 User-Friendly Interface: The application should have an intuitive and user-friendly interface
to ensure ease of use for both staff members and users throughout the complaint submission,
task tracking, and report downloading processes.

Feasibility Study:

Feasibility study can help you determine whether you should proceed with your project. It is
essential to evaluate cost and benefit. It is essential to evaluate the cost and benefit of the
proposed system. Five types of feasibility study are taken into consideration.

1. Technical feasibility: The technical feasibility of the College Revamp android application
appears to be high. The use of modern technology, such as Android platform, allows for
efficient registration of staff and complaint management. The ability to upload images and
descriptions for renovation purposes suggests that the application can handle multimedia
content effectively. Additionally, the ability to track progress and generate reports in PDF
format indicates that the application possesses the necessary technical capabilities.

2. Operational feasibility: The operational feasibility of College Revamp seems favorable. The
application streamlines the process of registering staff and managing renovation complaints,
simplifying the overall workflow. The feature that allows administrators to assign tasks to the
relevant personnel ensures efficient task allocation. Furthermore, the ability for users and
staff to track progress fosters transparency and accountability, enhancing operational
effectiveness.

3. Economic feasibility: From an economic standpoint, College Revamp seems feasible. The
use of an android application can potentially reduce administrative costs associated with
manual complaint management and renovation tracking. Automation of these processes could
lead to improved efficiency and productivity, resulting in cost savings. However, a
thorough cost-

Sir Chhotu Ram Institute of Engineering and Technology Page 41


College Revamp

benefit analysis should be conducted to evaluate the financial viability of developing and
maintaining the application.

4. Organizational feasibility: The organizational feasibility of College Revamp depends on the


readiness and capacity of the organization to implement and support the application.
Adequate resources, such as skilled personnel and infrastructure, need to be allocated to
develop, deploy, and maintain the application effectively. Moreover, the organization should
be open to adopting new technological solutions and willing to adapt existing processes to
align with the features and functionality of the application.

5. Cultural feasibility: The cultural feasibility of College Revamp pertains to its compatibility
with the prevailing cultural norms and practices within the organization and its user base.
The application should be designed in a way that accommodates the cultural expectations and
preferences of its users. User interface elements, language, and communication styles should
be culturally sensitive to ensure widespread acceptance and adoption of the application.
Regular feedback and user engagement can help address any cultural barriers that may arise
during the implementation process.

This project is technically feasible. Also, it is simple in operation and does not cost training
or repairs. The overall feasibility study of the project reveals that the goals of the proposed
system are achievable. Decision is taken to proceed with the project.

5.3 HARDWARE AND SOFTWARE REQUIREMENTS


This software is being built keeping in mind the generally available hardware and software
compatibility. Here are the minimum hardware and software requirements for mess
application.
Hardware:
 Minimum requirement of Android 9 (API level 28)
 Internet connection needed
Software:
 Android Studio & IntelliJ IDE
 Kotlin
 Google Firebase

Sir Chhotu Ram Institute of Engineering and Technology Page 42


College Revamp

CHAPTER- 6
CODING
Staff Home Page:
package com.octovalley.collegerevamp.staff
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.octovalley.collegerevamp.R
import com.octovalley.collegerevamp.fragment.HomeFragment
import com.octovalley.collegerevamp.fragment.StatusFragment
import io.paperdb.Paper
import kotlinx.android.synthetic.main.activity_home.*

class Home : AppCompatActivity() {


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)

val homeFragment = HomeFragment()


val statusFragment = StatusFragment()
Paper.init(this)
supportFragmentManager.beginTransaction().apply {
replace(R.id.fl_fragment,homeFragment)
commit()
}

home_img.setOnClickListener
{ supportFragmentManager.beginTransaction().apply
{
replace(R.id.fl_fragment,homeFragment)

Sir Chhotu Ram Institute of Engineering and Technology Page 43


College Revamp

addToBackStack(null)
commit()
}
}
home_status_img.setOnClickListener
{ supportFragmentManager.beginTransaction().apply
{
replace(R.id.fl_fragment,statusFragment)
addToBackStack(null)
commit()
}
}

home_setting_img.setOnClickListener {
val i = Intent(this, ForgetPasswordActivity::class.java)
i.putExtra("check","settings")
startActivity(i)

home_logout_img.setOnClickListener {
var i = Intent(this@Home , MainActivity::class.java)
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or
Intent.FLAG_ACTIVITY_CLEAR_TASK)
Paper.book().destroy()
finish()
}

}
}

Sir Chhotu Ram Institute of Engineering and Technology Page 44


College Revamp

Admin Home Page:


package com.octovalley.collegerevamp.admin

import android.app.AlertDialog
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import
androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.firebase.ui.database.FirebaseRecyclerAdapter
import com.firebase.ui.database.FirebaseRecyclerOptions
import com.google.android.gms.tasks.OnCompleteListener
import com.google.firebase.database.DatabaseReference
import com.google.firebase.database.FirebaseDatabase
import com.octovalley.collegerevamp.R
import com.octovalley.collegerevamp.model.Sample
import com.octovalley.collegerevamp.model.Staff
import com.octovalley.collegerevamp.prevalent.Adminvalent
import com.octovalley.collegerevamp.prevalent.Staffvalent
import com.octovalley.collegerevamp.staff.Login
import com.octovalley.collegerevamp.staff.MainActivity
import com.octovalley.collegerevamp.viewHolder.ImageViewHolder
import com.octovalley.collegerevamp.viewHolder.TextViewHolder
import com.squareup.picasso.Picasso
import kotlinx.android.synthetic.main.activity_admin_home.*

Sir Chhotu Ram Institute of Engineering and Technology Page 45


College Revamp

class AdminHomeActivity : AppCompatActivity() {

private lateinit var recyclerView: RecyclerView


private lateinit var queryRef: DatabaseReference
private lateinit var staff_recyclerview: RecyclerView
private lateinit var staff_query: DatabaseReference

override fun onCreate(savedInstanceState: Bundle?) {


super.onCreate(savedInstanceState)
setContentView(R.layout.activity_admin_home)

recyclerView = admin_sample_recyclerview
recyclerView.setHasFixedSize(false)
val layoutManager = LinearLayoutManager(this)
layoutManager.reverseLayout = true
layoutManager.stackFromEnd = true
recyclerView.layoutManager = layoutManager
recyclerView.setLayoutManager(
LinearLayoutManager(
this,
LinearLayoutManager.HORIZONTAL,
true
)
)

Sir Chhotu Ram Institute of Engineering and Technology Page 46


College Revamp

staff_recyclerview = admin_staff_recyclerview
staff_recyclerview.setHasFixedSize(false)
val layoutManagers = LinearLayoutManager(this)
layoutManagers.reverseLayout = true
layoutManagers.stackFromEnd = true
staff_recyclerview.layoutManager = layoutManagers
staff_recyclerview.setLayoutManager(
LinearLayoutManager(
this,
LinearLayoutManager.HORIZONTAL , true
)
)
var s = Adminvalent.currentOnlineAdmin?.collegeCode.toString() +"1234"

queryRef = FirebaseDatabase.getInstance().reference.child(s)
.child("Samples")
staff_query =
FirebaseDatabase.getInstance().reference.child(Adminvalent.currentOnlineAdmin?.coll
egeCode.toString())

admin_logout.setOnClickListener{
var i = Intent(this, MainActivity::class.java)
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or
Intent.FLAG_ACTIVITY_CLEAR_TASK)
finish()
}
}

override fun onStart() {

Sir Chhotu Ram Institute of Engineering and Technology Page 47


College Revamp

super.onStart()

var options = FirebaseRecyclerOptions.Builder<Sample>()


.setQuery( queryRef
,
Sample::class.java
)
.build()
val adapter: FirebaseRecyclerAdapter<Sample, ImageViewHolder> =
object : FirebaseRecyclerAdapter<Sample, ImageViewHolder>(options){
override fun
onBindViewHolder( imageViewHolde
r: ImageViewHolder, p1: Int,
sample: Sample
){
imageViewHolder.name?.setText(
""" |Title : ${sample.title}
|
|Description : ${sample.description}
|
|Date : ${sample.date}
|
|Status : ${sample.status}
""".trimMargin()
)

Picasso.get().load(sample.image).into(imageViewHolder.image)

imageViewHolder.itemView.setOnClickListener(View.OnClickListener {

val builder =

Sir Chhotu Ram Institute of Engineering and Technology Page 48


College Revamp

androidx.appcompat.app.AlertDialog.Builder(this@AdminHomeActivity)
builder.setTitle("Active or Rejected or Ongoing")
val newPassword = EditText(this@AdminHomeActivity)
newPassword.hint = "Write Status here..."
builder.setView(newPassword)
builder.setPositiveButton("Change"){dialog , which->

queryRef.child(sample.sampleId.toString()).child("status").setValue(newPassword.text.
toString()).addOnCompleteListener{task->
if(task.isSuccessful)
{
Toast.makeText(this@AdminHomeActivity,"Password changed
Successfully...!",Toast.LENGTH_LONG).show()

}
}
}.setNegativeButton("Cancel"){dialog ,which->
dialog.cancel()
}
builder.show()
})
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):
ImageViewHolder {
val view : View = LayoutInflater.from(parent.context)
.inflate(R.layout.image_query_cardview, parent, false)
return ImageViewHolder(view)
}

}
recyclerView.adapter = adapter

Sir Chhotu Ram Institute of Engineering and Technology Page 49


College Revamp

adapter.startListening()

var staffoptions = FirebaseRecyclerOptions.Builder<Staff>()


.setQuery(
staff_query,
Staff::class.java
)
.build()
val staff_adapter: FirebaseRecyclerAdapter<Staff, TextViewHolder> =
object : FirebaseRecyclerAdapter<Staff, TextViewHolder>(staffoptions){
override fun
onBindViewHolder( textViewHol
der: TextViewHolder, p1: Int,
sample: Staff
){
textViewHolder.name?.setText(
""" |Staff Name : ${sample.userName}
|
|Phone Number : ${sample.phoneNumber}
|
|Mail : ${sample.mail}
""".trimMargin()
)
textViewHolder.itemView.setOnClickListener(View.OnClickListener {
var builder = AlertDialog.Builder(this@AdminHomeActivity)
builder.setTitle("Do you wish to delete this Query ? ")
.setPositiveButton("yes") { dialog, which ->
staff_query.child(sample.phoneNumber.toString()).removeValue()
.addOnCompleteListener(OnCompleteListener {
Toast.makeText(
this@AdminHomeActivity,

Sir Chhotu Ram Institute of Engineering and Technology Page 50


College Revamp

"Removed Successfully",
Toast.LENGTH_LONG
).show()
})

}.setNegativeButton("No") { dialog, which ->


dialog.dismiss()
}.show()
})
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):
TextViewHolder {
val view : View = LayoutInflater.from(parent.context)
.inflate(R.layout.text_query_cardview, parent, false)
return TextViewHolder(view)
}
}

staff_recyclerview.adapter = staff_adapter
staff_adapter.startListening()
}

Sir Chhotu Ram Institute of Engineering and Technology Page 51


College Revamp

CHAPTER-7 SCREENSHOTS

Fig 7.1: Home Activity Fig 7.2 Staff Register Activity

Home Activity:

 Open the application


 We have two choices.
o Join as Staff
o Login
 Select join as staff option
 Fill the required details and register as staff
 Now login

Staff Register Activity:

 Fill the required details in join as staff options


 Click on register as staff options.

Sir Chhotu Ram Institute of Engineering and Technology Page 52


College Revamp

Fig7.3: Staff Login Activity Fig7.4: Query Uploading Activity

Staff login Activity:

 Click on the login options


 Fill the registered, mobile number ,password and college code.
 If the user forget the password then click on forget password options
 Reset the password.
 Again fill all the credentials to login.
 Now click on the login staff options.

Query uploading Activity:

 Upload the related image .


 Give the proper title .
 Write in details about the query.
 Submit

Sir Chhotu Ram Institute of Engineering and Technology Page 53


College Revamp

Fig 7.5: Set Question Activity Fig 7.6: Admin Login Activity

Set Question Activity:

 Set security question to use in the recovery of account at the of forgetting password .
 Select any one options .
 Provide answer to the security questions.
 And click on the set question button .

Admin Login Activity:

 Enter mobile number ,password ,college code .


 Click on admin login button.

Sir Chhotu Ram Institute of Engineering and Technology Page 54


College Revamp

Fig 7.7: Admin Home Activity

Admin Home Activity:

 Admin can login .


 Admin can see the query and the registered staff .

Sir Chhotu Ram Institute of Engineering and Technology Page 55


College Revamp

CHAPTER-8

TESTING
8.1 Introduction

Testing is the process of exercising software with the intent of finding and correcting errors.
The objective of the testing is to uncover different classes of errors and to do so with a
minimum amount of time and effort. To provide highly acceptable and error free system, the
system should have to face the testing procedure and evaluation of each and every module
and functionality.

8.2 Need of Testing

The significance of the testing phase is done to verify and validate the completed system. So
that it will be executed and presented the way it was expected and all the functionalities
function as were defined in the project specification form. The testing does not require that
the developer has to test each and every section of code to verify the bugs and recover from
the errors and bugs that are present in it but its objective is to uncover the situations that
could impact the system or the project or can lead in making the project unsuccessful. Thus,
testing is done to enhance the quality of the system produced so that it is acceptable by the
intended user with satisfaction. The highlights of this chapter include:

The different types of testing


done. The duration taken to test.
The person(s) involved.
The reported errors.
The measures taken.

Page 56
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

8.3 Test Plan

Software development processes typically focus on avoiding errors, detecting and correcting
the software faults that do occur and predicting reliability after development. The test
process, techniques and tools are significant contributors to effective and efficient testing and
quality assurance. Various testing techniques to be implemented for proposed system are
given in the next section.

8.4 Type of Testing

8.4.1 Unit Testing

Testing of individual software component or modules of the system. This type of testing is
performed by the developers only because it requires detailed knowledge of the internal
program design and code. It includes performing black box and white box testing.

8.4.2 Integration Testing

Testing of integration modules to verify combined functionality after integration. Various


modules are integrated together and then tested by the developer of the system to check
whether the modules work properly after integration.

8.4.3 System Testing

Entire system is tested by the developer as per the requirements. All the modules of the
system are combined and check whether they work perfectly after being integrated into one
system.

8.4.4 Compatibility Testing

Compatibility testing is used to determine if the system causes any issues related to how it
functions in concern with the operating system and different type of system hardware and
software. The developer performs this type of testing on various hardware/ software platform
to test the compatibility of the system on each platform.

8.4.5 GUI Testing

The testing is to be done to verify the design of the system whether it satisfies the six

Page 57
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

predefined HCIU design principle and whether the system is user friendly.

Page 58
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

8.4.6 Usability Testing

The purpose of doing a usability test is to determine whether a product or document works
with its intended users or readers. This is to be done by evaluating a product through
observing the real people working on or using it so as to improve or enhance the system. The
end users execute the system to test it.

8.4.7 User Acceptance Testing

User Acceptance Testing tests that the system satisfies all the essential user requirements and
is performing to the acceptable level as expected by the customer. This is done by defining a
set of acceptance criteria which the system must satisfy before the customer will accept it.

8.4.8 Documentation Testing

Documentation Testing is to be done to verify the system documentation whether it is


meaningful and user friendly or not.

8.5 TEST CASE DESIGN

• Test Case 1

Test Title: Working of navigation between activities

Test ID: T1

Test Priority: Moderate

Test Objective: To make sure that the navigation between activities is efficient.

Description:
As we are required to navigate between activities either in website or in application. The system
must be smooth for navigation in a moment. User must get instant view of another screen.

• Test Case 2

Test Title: On pressing back button

Page 59
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

Test ID: T2

Test Priority: High

Test Objective: To assure that on pressing back button by user leads to the required screen.

Description:
On pressing back button by user leads to the previous screen or exits the app. As this is very
important as after login the user must not see the login screen on pressing the back button
until and unless the user has logged out from the system.

• Test Case 3

Test Title: Fetching data from database.

Test ID: T3

Test priority: High

Test Objective: To check whether the data is correctly fetched from the database.

Description:

It is the most important case as in this case the user fetches the data from the database, and it
is more important that the data is fetched correctly.

Note: There might include a few more test cases and these test cases are also subject to
change with the final software development.

Page 60
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

CHAPTER- 9
SYSTEM DESIGN
9.1 ER DIAGRAM

Fig 9.1:ER Diagram

The above diagram shows entities and their relationship for a virtual assistant system. We
have a user of a system who can have their keys and values. It can be used to store any
information about the user. Say, for key “name” value can be “Jim”. For some keys users
might like to keep secure. There he can enable lock and set a password (voice clip).

Page 61
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

Single users can upload multiple query. Each query will be given ID to get recognized along
with the query and its corresponding query. Users can also have several tasks. These should
have their own unique id and status i.e., their current state.

9.2 ACTIVITY DIAGRAM

Fig 9.2: Activity Diagram

Page 62
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

9.3 CLASS DIAGRAM

Upload

Status

Fig 9.3: Class Diagram

The class user has 2 attributes command that it sends in audio and the response it receives
which is also audio. It performs a function to listen the user command. Interpret it and then
reply or sends back response accordingly. Question class has the command in string form as
it is interpreted by interpret class. It sends it to general or about or search function based on
its identification.

The task class also has interpreted command in string format. It has various functions like
reminder, note, mimic, research, and reader.

Page 63
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

9.4 USE CASE DIAGRAM

Upload

Status

Fig 9.4: Use Case Diagram

In this project there are multiple users. The user queries command to the system. The system
then integrates it with the result of other users and then shows the status. The complete
response is visible back to the use.

Page 64
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

9.5 DATA FLOW DIAGRAM

9.5.1 DFD Level 0 (Context Level Diagram)

Fig 9.5.1 DFD Level 0

9.5.2 DFD Level


1

Fig 9.5.2: DFD Level 1

Page 65
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

CHAPTER-10
CONCLUSION
In conclusion, College Revamp emerges as a valuable android application designed to
streamline and enhance the process of building renovation within educational institutions. By
providing a user-friendly platform, it empowers both staff and users to actively participate in
the renovation process. The ability to register as staff and lodge complaints ensures that all
renovation needs are acknowledged and addressed effectively.

With the option to upload images and descriptions of the structures requiring renovation,
College Revamp enables seamless communication between staff and administrators. This
feature allows the administration to allocate the necessary tasks to the appropriate
individuals, ensuring efficient distribution of responsibilities.

Furthermore, the application offers a comprehensive tracking system that enables users and
staff to monitor the progress of the renovation projects. This feature fosters transparency and
accountability, allowing stakeholders to stay informed about the status of their reported
issues.

Moreover, College Revamp's functionality extends beyond tracking progress. The inclusion
of the ability to download reports in PDF format provides users and staff with tangible
evidence of the renovation work done. This feature facilitates record-keeping and simplifies
the sharing of project updates.

Overall, College Revamp serves as a vital tool for improving the renovation process in
educational institutions. By leveraging technology, it promotes effective communication, task
allocation, progress tracking, and documentation. With its user-centric approach, this
application has the potential to revolutionize the way building renovation is managed,
ensuring a more efficient and transparent process for all stakeholders involved.

Page 66
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

CHAPTER-11
FUTURE SCOPE
Android app will provide a more enhanced personalized experience to users, so do our College
Revamp app. As it is user friendly and can be used by everybody

Task Scheduling and Progress Tracking:

Enhance the app to include a scheduling system that enables the admin to assign tasks to staff
members with specific timelines. Users and staff can track the progress of each task, view
milestones, and receive notifications when a task is completed or delayed.

Integration with Facilities Management Systems:

Integrate the College Revamp application with existing facilities management systems or
other relevant software used by the institution. This would streamline data exchange and
ensure efficient management of renovation projects, resource allocation, and maintenance
processes.

Social Media Integration:

Allow users to share their renovation experiences or feedback on social media platforms
directly from the app. This can help generate positive exposure for the college and attract
potential students or stakeholders.

Page 67
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp

CHAPTER-12

REFERENCE AND BIBLIOGRAPHY


• Websites referred:
 https://developer.android.com/topic/libraries/support-
 https://www.javatpoint.com/android-tutorial
 https://www.tutorialspoint.com/android/android_shared_preferences.htm
 https://developer.android.com/reference/android/widget/LinearLayout.LayoutParams#attr_android:la
yout_gravity
 https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-
1-get-started/lesson-3-testing,-debugging,-and-using-support-libraries/3-1-c-the-android-studio-
debugger/3-1-c-the-android-studio-debugger.html
 https://kotlinlang.org/docs/android-overview.html

• Books referred:
 Android Programming with Kotlin for Beginners by John Horton
 Android Studio 3.0 Development Essentials

• YouTube Channels referred


 WsCube Tech
 Coding Stuff

Page 68
Sir Chhotu Ram Institute of Engineering and Technology

You might also like