INTRODUCTION
This project entitled as “Automobile Workshop Management System” is android based application. It is an attempt to provide ease and comfort to car holders. This project allows customers to save their time. This application will help the user to make an appointment online without wasting the time in Automobile Workshops. Users can easily check when the mechanic will be free and take an appointment.
Admin can add mechanics easily and view reports about everything. The mechanic will be able to generate an invoice and handle the services selected by the customers online. Customers can easily sign up freely, add and delete cars, select appropriate services for their cars and check for the time of appointment and make appointments online by using this application.
PROJECT OBJECTIVES
- The objective of this application is to provide a platform where car holders can save their time and efficiently solve their problems.
- This application will allow the Admin to review the report and add mechanics.
- This application will help the user to save their time by not going to Automobile Workshop and wait for their turn.
- This application will help the user to check their invoice.
- This application will help the customers to add cars of different models.
PROJECT OVERVIEW
The central concept of the application is to allow the customer to make appointments using the Internet and allow customers to perform more actions like add cars etc.
There are three types of users in our project. Those are Admin Mechanic and Customer. While login it will check and redirect to the next activity according to the condition.
For example, if the user is a customer then it will be redirected to the dashboard where the customer can perform functions like add car, delete car, make an appointment, etc.
But if the user is a mechanic it will be redirected to the activity where it can review appointments and generate an invoice.
If the user is an admin then he/she will be able to add mechanics, review reports, and change settings.
PROJECT SCOPE
In this project there are three types of modules first we talk about the user functionality of the user which the user can perform in this project first of all user creates an account in this application and in backend data saved to the database and the user can easily log in for next time. Users can also add vehicle delete vehicle .user can check the invoice of the bill. Users can review services which are performed by workshop mechanic.
A mechanic can handle appointments put new comings appointments in according to their time slot and generate bills at the end.
Admin can provide services. Like in Automobile Workshop they add a new facility for tyres repairing, So it is handled and updated by the admin. Admin can also add mechanics, admin can view reports and make changes to settings.
TOOLS FOR DEVELOPMENT
Our Android Application is based on the following tools and computer languages
Back-end Tools and Technologies
- Android Database SQLite
- Java
Front-End Tools and Technologies
- Android Studio
- XML
Other Tools and Technologies
- Microsoft Word (for documentation)
- io
- com
- Snapping Tool
HARDWARE REQUIREMENT
- Android Phone
- Approximately 100MB of free hard drive space and 128MB of RAM.
DEPLOYMENT
- Android SQLite Database
- Client-side operating system Android
activity_add_bays.XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".AddBays"> <EditText android:id="@+id/editTextTextPersonName16" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="156dp" android:ems="10" android:hint="Enter Number of Bays" android:inputType="textPersonName" android:textSize="22sp" /> <Button android:id="@+id/btn_bays" android:layout_width="177dp" android:layout_height="wrap_content" android:layout_below="@id/editTextTextPersonName16" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" android:layout_marginStart="101dp" android:layout_marginLeft="101dp" android:layout_marginTop="167dp" android:text="Add Bays" android:textSize="22sp" app:backgroundTint="#FD0303" /> </RelativeLayout> |
activity_customer_bill.XML
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".customer_bill"> <TextView android:id="@+id/textView19" android:layout_width="141dp" android:layout_height="29dp" android:layout_marginTop="68dp" android:text="Customer Name" app:layout_constraintEnd_toStartOf="@+id/tname" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView14" /> <TextView android:id="@+id/textView14" android:layout_width="223dp" android:layout_height="49dp" android:layout_marginTop="48dp" android:text="Cutomer Bill Detail" android:textSize="24sp" app:layout_constraintTop_toTopOf="parent" tools:layout_editor_absoluteX="82dp" /> <TextView android:id="@+id/textView15" android:layout_width="140dp" android:layout_height="31dp" android:layout_marginStart="52dp" android:layout_marginLeft="52dp" android:layout_marginTop="36dp" android:text="Car Name" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView19" /> <TextView android:id="@+id/textView20" android:layout_width="141dp" android:layout_height="29dp" android:layout_marginTop="44dp" android:text="Total Bill" app:layout_constraintEnd_toStartOf="@+id/tbill" app:layout_constraintHorizontal_bias="0.495" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView15" /> <TextView android:id="@+id/tcarname" android:layout_width="141dp" android:layout_height="29dp" android:layout_marginTop="40dp" android:text="TextView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.692" app:layout_constraintStart_toEndOf="@+id/textView15" app:layout_constraintTop_toBottomOf="@+id/tname" /> <TextView android:id="@+id/tbill" android:layout_width="141dp" android:layout_height="29dp" android:layout_marginTop="44dp" android:layout_marginEnd="24dp" android:layout_marginRight="24dp" android:text="TextView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/tcarname" /> <TextView android:id="@+id/tname" android:layout_width="139dp" android:layout_height="25dp" android:layout_marginTop="72dp" android:layout_marginEnd="24dp" android:layout_marginRight="24dp" android:text="TextView" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView14" /> </androidx.constraintlayout.widget.ConstraintLayout> |
Appointment.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 |
package com.example.workshopautomation; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.content.ContentValues; import android.content.Intent; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.os.SystemClock; import android.provider.ContactsContract; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Locale; public class Appointment extends AppCompatActivity { SQLiteOpenHelper openHelper; SQLiteDatabase db; Button _btn_app1 ,_btn_app2 ,_btn_app3 ,_btn_app4 ,_btn_app5 ,_btn_app6 ,_btn_app7 ,_btn_app8,_btn_app9 ,_btn_app10 , _btn_app11 ,_btn_app12,_btn_app13 ,_btn_app14 ,_btn_app15 ,_btn_app16 ,_btn_app17 ,_btn_app18 ,_btn_app19 ,_btn_app20 , _btn_app21 ,_btn_app22 ,_btn_app23 ,_btn_app24,_btn_app25; TextView timeslot1,timeslot2,timeslot3,timeslot4,timeslot5; int check = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_appointment); _btn_app1 = (Button)findViewById(R.id.btn_app1); _btn_app2 = (Button)findViewById(R.id.btn_app2); _btn_app3 = (Button)findViewById(R.id.btn_app3); _btn_app4 = (Button)findViewById(R.id.btn_app4); _btn_app5= (Button)findViewById(R.id.btn_app5); _btn_app6 = (Button)findViewById(R.id.btn_app6); _btn_app7 = (Button)findViewById(R.id.btn_app7); _btn_app8 = (Button)findViewById(R.id.btn_app8); _btn_app9 = (Button)findViewById(R.id.btn_app9); _btn_app10 = (Button)findViewById(R.id.btn_app10); _btn_app11 = (Button)findViewById(R.id.btn_app11); _btn_app12 = (Button)findViewById(R.id.btn_app12); _btn_app13 = (Button)findViewById(R.id.btn_app13); _btn_app14 = (Button)findViewById(R.id.btn_app14); _btn_app15 = (Button)findViewById(R.id.btn_app15); _btn_app16 = (Button)findViewById(R.id.btn_app16); _btn_app17 = (Button)findViewById(R.id.btn_app17); _btn_app18 = (Button)findViewById(R.id.btn_app18); _btn_app19 = (Button)findViewById(R.id.btn_app19); _btn_app20 = (Button)findViewById(R.id.btn_app20); _btn_app21 = (Button)findViewById(R.id.btn_app21); _btn_app22 = (Button)findViewById(R.id.btn_app22); _btn_app23 = (Button)findViewById(R.id.btn_app23); _btn_app24 = (Button)findViewById(R.id.btn_app24); _btn_app25 = (Button)findViewById(R.id.btn_app25); timeslot1=findViewById(R.id.txt1); String st = getIntent().getExtras().getString("value"); String cid = getIntent().getExtras().getString("id"); Toast.makeText(getApplicationContext(),st,Toast.LENGTH_LONG).show(); _btn_app1.setOnClickListener(new View.OnClickListener() { @SuppressLint("ResourceAsColor") @Override public void onClick(View v) { if (check==1) { _btn_app1.setBackgroundColor(R.color.black); check = 0; } else { _btn_app1.setBackgroundColor(R.color.purple_700); check=1; } String time=timeslot1.getText().toString(); String currentDateTimeString = java.text.DateFormat.getDateTimeInstance().format(new Date()); Calendar c = GregorianCalendar.getInstance(); c.setFirstDayOfWeek(Calendar.MONDAY); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); c.add(Calendar.DAY_OF_WEEK, 0); DateFormat df = new SimpleDateFormat("EEE, yyyy-MM-dd", Locale.getDefault()); String startDate; String endDate; startDate = df.format(c.getTime()); //c.add(Calendar.DAY_OF_MONTH, 2); endDate = df.format(c.getTime()); Toast.makeText(Appointment.this,endDate,Toast.LENGTH_LONG).show(); Intent intent = new Intent(Appointment.this, Appointment_handling.class); // startActivity(intent); // Intent intent = new Intent(Appointment.this, Appointment_handling.class); intent.putExtra("Name",st); intent.putExtra("ID",cid); intent.putExtra("Date",endDate); intent.putExtra("Time",time); startActivity(intent); } }); _btn_app2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app5.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app6.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app7.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app8.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app9.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app10.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app11.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app12.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app13.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app14.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app15.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app16.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app17.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app18.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app19.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app20.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app21.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app22.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app23.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app24.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); _btn_app25.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Appointment.this, Appointment_handling.class); startActivity(intent); } }); } public void Date(String ID,Date Date) { ContentValues contentValues= new ContentValues(); contentValues.put(DatabaseHelper.CACOL_1,ID); contentValues.put(DatabaseHelper.CACOL_2, String.valueOf(Date)); long id = db.insert(DatabaseHelper.TABLE_NAME9 , null,contentValues); } } |
customer_bill.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
package com.example.workshopautomation; import androidx.appcompat.app.AppCompatActivity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.widget.TextView; public class customer_bill extends AppCompatActivity { SQLiteOpenHelper openHelper; SQLiteDatabase db; Cursor cursor,c; TextView Cusname,Carname ,bill; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_customer_bill); openHelper = new DatabaseHelper(this); db= openHelper.getReadableDatabase(); Cusname = findViewById(R.id.tname); Carname = findViewById(R.id.tcarname); bill = findViewById(R.id.tbill); Cusname.setText("Azhar"); Carname.setText("Honda Civic(2021)"); bill.setText("5000"); } } |
Download Full Source code of Automobile Workshop App in Android
Similar Helping Material for Automobile Workshop App
- Code of Automobile Workshop Management System
- Functional and Non functional Requirements of Automobile Workshop Management System
- Use Case Diagram of Automobile Workshop Management System
- USE CASES Description of Automobile Workshop Management System
- Sequence diagram of Automobile Workshop Management System
- Class diagram of Automobile Workshop App
- ERD diagram OF Automobile Workshop App
- Software Testing of Automobile Workshop Management System
- Conceptual diagram of Automobile Workshop App
- Data flow diagram of Automobile Workshop App (DFD)