PWP Pro
PWP Pro
Micro-Project
Academic Year 2024-25
o Course name: Computer Engineering
o Title of Microproject: Android Quiz App
o Course Code: 22617
o Course Co-ordinator: Mrs. Varsha Rajmane
Microproject Report
Part A Part B
Name of Program: Diploma in Computer Engineering
Sagar Jadhav
Vaishnavi Matkar
Om Swami
Maharashtra State
Board of Technical Education, Mumbai
(Autonomous) (ISO-9001-2008) (ISO/IEC 27001:2013)
CERTIFICATE
This is to certify that Mr/Mrs. 210-Janhavi More, 198-Vaishnavi Matkar, 201-Om Swami,
205-Sagar Jadhav of Diploma in Computer Engineering of Pimpri-Chinchwad Polytechnic
has completed Micro projects of the course Mobile Application Development (22617) as
prescribed in the curriculum for the academic year 2024-25.
Place: Akurdi
Date:
Course In charge
Head of Department Mrs. Varsha Rajmane
Prof. M.S. Malkar
Seal of institute
PART-A
Micro Project Proposal
Proposed methodology:
Technology in the field of education is constantly evolving, growing and this increase will
continually offer new and extraordinary advances in the field of education. Traditional E-
learning systems developed for laptop and desktops were based on standalone application and
web based application architecture. These applications will have some limitations to be used
effectively or we cannot use them easily since these applications need a computing device
and network connectivity. With the advancement in the mobile technology and availability of
smart mobile devices and networks we can create a system which can be used to check
knowledge levels of students.
Since mobile network is available at maximum areas so this can be used for the knowledge
testing of any person specially candidates of software company who need a specific skill for
job
The current system developed is feasible. Thus it provides easy access to the users. The
database’s purpose is to make, establish and maintain a workflow among various entities in
order to facilitate all concerned users in their different capacities or roles. Permission to the
users would be granted based on the roles specified. Therefore, this provides the technical
guarantee of correctness, speed and security.
The software and hard requirements for the development of this project are not many and are
already available in-house at NIC or are available as free as open source. The work for the
project is done with the current equipment and existing software technology. Necessary
bandwidth exists for providing fast feedback to the users irrespective of the number of users
using the system. The main theme of this app is to save time while conducting examinations.
Generally, to conduct exams we need so much infrastructure ,but here if we have the
application installed it is enough for the examination.
Modules:-
VALIDATION: Every student needs to have a unique account to login and password to write
the exam. In this validation phase the database validates the user only if user id and password
matches.
CHOOSE TEST: In this module students can choose from various tests to appear and write
the test accordingly.
FETCH URL: Here we provide some number of links for preparing the subjects and prepare
for the test by following the material provided in the link.
VIEW RESULT: After completing the exam the result will be declared in this
Procedures:-
Register the student.
Login student, if user id , password valid then goto the selection page.
In activity selection page
Can choose to play quiz or references.
Can select different modules.
After selecting a
particular
module we will get
questions based
on that.
If we select references
we will get links
regarding the
topics.
Log Out
Action Plan:
PLANNED PLANNED NAME OF
SR. DETAILS OF
START FINISHED RESPONSIBLE
NO ACTIVITY
DATE DATE TEAM MEMBER
Topic given by subject
1. teacher and discussed 9/1/25 Janhavi More
16/1/25
with given members.
2. Design of project 16/1/25 23/1/25
3. Planning of project 23/1/25 25/1/25
Distribution of task and
discussion of role and Vaishnavi Matkar
4. 25/1/25 25/1/25
responsibilities of each
other
Collection of information
5. 25/1/25 30/1/25
related to the topic
Analysed the collected
6. data and finalise 30/1/25 6/2/25 Sagar Jadhav
structure of the project
7. Report preparation 6/2/25 8/2/25
Om Swami
8. Implementation 8/2/25 8/2/25
PART-B
Micro Project Proposal
Introduction: Thus the main objective of the project is to develop an interactive mobile
application based on an android platform to conduct quiz sessions in the class for
different technical topics like java.
Benefits:-
Literature Review:
The Quiz App is rated in the top 5 aptitude applications in the android market developed
by Sindu Rajan and designed by Yalini Kumaraguru.
Pocket Aptitude is a collection of 10+ quantitative aptitude questions and word problems
frequently asked in competitive examinations and placement papers.
It is designed as a preparation tool for job aspirants and those waiting to crack CAT,
NTSE and various bank exams.
People with an inclination towards mathematics can use this app to sharpen their IQ, test
their aptitude skills and enrich their knowledge.
This application has various fine points and flaws and provides a good user interface but
only for practice tests but the questions being asked are of old pattern and not in trend.
The main motto is to make this app work faster and efficiently enough for students to
make the most out of it.
The Logical Reasoning and Aptitude application developed by the team is also a
popularly used aptitude test application. Logical Reasoning helps in improving problem-
solving skills by focusing on Logical Reasoning Questions.
Logical Reasoning will help you in preparation of admissions tests and other different
kinds of exams, but the user interface is not interactive, the user has to scroll horizontally
to view the entire answer. It just has MCQs for test and score evaluation.
Program Code:
MainActivity.java
package com.example.vikasojha.quizbee;
import android.graphics.Color;
import java.util.Random;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_developer);
btnRestart = (Button) findViewById(R.id.button4);
btnRestart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent in2 = new Intent(getApplicationContext(),MainActivity.class);
startActivity(in2);
}});
}
}
package com.example.Damini.quizbee;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button startbutton=(Button)findViewById(R.id.button);
Button aboutbutton=(Button)findViewById(R.id.button2);
final EditText nametext=(EditText)findViewById(R.id.editName);
startbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name=nametext.getText().toString();
Intent intent=new
Intent(getApplicationContext(),QuestionsActivity.class);
intent.putExtra("myname",name);
startActivity(intent);
} });
aboutbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new
Intent(getApplicationContext(),DeveloperActivity.class);
startActivity(intent);
} }); }}
package com.example.Damini.quizbee;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
public class QuestionsActivity extends AppCompatActivity {
TextView tv;
Button submitbutton, quitbutton;
RadioGroup radio_g;
RadioButton rb1,rb2,rb3,rb4;
String questions[] = {
"Which method can be defined only once in a program?",
"Which of these is not a bitwise operator?",
correct++;
Toast.makeText(getApplicationContext(), "Correct",
Toast.LENGTH_SHORT).show();
}
else {
wrong++;
Toast.makeText(getApplicationContext(), "Wrong",
Toast.LENGTH_SHORT).show();
}
flag++;
if (score != null)
score.setText(""+correct);
if(flag<questions.length)
{
tv.setText(questions[flag]);
rb1.setText(opt[flag*4]);
rb2.setText(opt[flag*4 +1]);
rb3.setText(opt[flag*4 +2]);
rb4.setText(opt[flag*4 +3]);
}
else
{
marks=correct;
Intent in = new Intent(getApplicationContext(),ResultActivity.class);
startActivity(in);
}
radio_g.clearCheck();
} });
quitbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(getApplicationContext(),ResultActivity.class);
startActivity(intent);
} }); }}
package com.example.Damini.quizbee;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.QuickContactBadge;
import android.widget.TextView;
import org.w3c.dom.Text;
public class ResultActivity extends AppCompatActivity {
TextView tv, tv2, tv3;
Button btnRestart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
tv = (TextView)findViewById(R.id.tvres);
tv2 = (TextView)findViewById(R.id.tvres2);
tv3 = (TextView)findViewById(R.id.tvres3);
btnRestart = (Button) findViewById(R.id.btnRestart);
StringBuffer sb = new StringBuffer();
sb.append("Correct answers: " + QuestionsActivity.correct + "\n");
StringBuffer sb2 = new StringBuffer();
sb2.append("Wrong Answers: " + QuestionsActivity.wrong + "\n");
StringBuffer sb3 = new StringBuffer();
sb3.append("Final Score: " + QuestionsActivity.correct + "\n");
tv.setText(sb);
tv2.setText(sb2);
tv3.setText(sb3);
QuestionsActivity.correct=0;
QuestionsActivity.wrong=0;
btnRestart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent in = new Intent(getApplicationContext(),MainActivity.class);
startActivity(in);
} }); } }
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.Damini.quizbee.DeveloperActivity">
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.Damini.quizbee.MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/quizapp"
android:layout_marginTop="48dp"
android:textSize="60dp"
android:id="@+id/textView"
android:layout_alignParentTop="true"
android:layout_alignLeft="@+id/editName"
android:layout_alignStart="@+id/editName"
android:textColor="#F44336" />
<Button
android:layout_width="200dp"
android:layout_height="52dp"
android:text="Start"
android:id="@+id/button"
android:textSize="30dp"
android:layout_above="@+id/button2"
android:layout_alignLeft="@+id/editName"
android:layout_alignStart="@+id/editName"
android:layout_marginBottom="25dp"
android:background="#FF5722"
android:textColor="#ffffff" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:ems="10"
android:id="@+id/editName"
android:textColor="#df040b"
android:hint="Enter your name"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="200dp"
android:layout_height="52dp"
android:text="About"
android:id="@+id/button2"
android:textSize="30dp"
android:layout_marginBottom="33dp"
android:layout_alignParentBottom="true"
android:layout_alignLeft="@+id/button"
android:layout_alignStart="@+id/button"
android:background="#01579B"
android:textColor="#ffffff" />
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.Damini.quizbee.QuestionsActivity">
<TextView
android:layout_width="200dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/DispName"
android:textColor="@color/accent_material_light"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/DispName"
android:layout_alignStart="@+id/DispName"
android:id="@+id/answersgrp"
android:clickable="true"
android:layout_centerVertical="true">
<!--android:layout-->
<!--android:checkedButton="@+id/radioButton"-->
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A"
android:id="@+id/radioButton"
android:checked="false"
/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B"
android:id="@+id/radioButton2"
android:checked="false" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C"
android:id="@+id/radioButton3"
android:checked="false" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D"
android:id="@+id/radioButton4"
android:checked="false" />
</RadioGroup>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
No instructor needed
Better overview
Randomizing questions
Large number of people can be quizzed at a time.
Action Plan:
SR. DETAILS OF PLANNED PLANNED NAME OF