Professional Documents
Culture Documents
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)
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.
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.
Er. Milind
HOD (CS)
SCRIET, Meerut
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.
ABSTRACT
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 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
CHAPTER:10 CONCLUSION...........................................................................................................62
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
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.
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.
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.
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
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.
There are following four main components that can be used within an Android application:
Activities
They dictate the UI and handle the user interaction to the smart phone screen.
Services
They handle background processing associated with an application.
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:
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
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.
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.
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
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.
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.
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.
CHAPTER-2
Kotlin
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.
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.
Create a project
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.
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.
From the Windows menu, find the terminal program (under "Accessories"). Alternatively,
press Windows+R and type cmd to start the terminal program.
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.
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.
$ 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.
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.
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
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.
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.
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.
Try running this program from the command line, with arguments, such as:
Finally, you may want to try running a larger program, such as master mind.kts.
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).
For this tutorial series, we will be using a simple Android app with a tabbed layout. Let’s
create it.
The minimum possible Android SDK version required by the Alan SDK is 21. In
the Minimum SDK list, select API 21. Then click Finish.
In the dependencies block, add the dependency configuration for the firebase Android SDK.
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.
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
languages. This basic support includes syntax highlighting, bracket matching, code folding,
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.
In terms of what is available right now, it seems like ANDROID STUDIO is a “best of both
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.
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.
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.
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).
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.
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.
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.
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.
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.
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-
benefit analysis should be conducted to evaluate the financial viability of developing and
maintaining 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.
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.*
home_img.setOnClickListener
{ supportFragmentManager.beginTransaction().apply
{
replace(R.id.fl_fragment,homeFragment)
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()
}
}
}
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.*
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
)
)
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()
}
}
super.onStart()
Picasso.get().load(sample.image).into(imageViewHolder.image)
imageViewHolder.itemView.setOnClickListener(View.OnClickListener {
val builder =
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
adapter.startListening()
"Removed Successfully",
Toast.LENGTH_LONG
).show()
})
staff_recyclerview.adapter = staff_adapter
staff_adapter.startListening()
}
CHAPTER-7 SCREENSHOTS
Home Activity:
Fig 7.5: Set Question Activity Fig 7.6: Admin Login 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 .
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.
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:
Page 56
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp
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.
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.
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.
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.
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
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.
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.
• Test Case 1
Test ID: T1
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
Page 59
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp
Test ID: T2
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 ID: T3
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
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.
Page 62
Sir Chhotu Ram Institute of Engineering and Technology
College Revamp
Upload
Status
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
Upload
Status
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
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
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.
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.
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
• Books referred:
Android Programming with Kotlin for Beginners by John Horton
Android Studio 3.0 Development Essentials
Page 68
Sir Chhotu Ram Institute of Engineering and Technology