0% found this document useful (0 votes)
16 views19 pages

Mini Project Code

Uploaded by

Raashid Shaikh
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views19 pages

Mini Project Code

Uploaded by

Raashid Shaikh
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Main Activity.

java

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class MainActivity extends AppCompatActivity {


Button btnPatient, btnDoctor, btnAppointment, btnView;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_main);
btnPatient = findViewById([Link]);
btnDoctor = findViewById([Link]);
btnAppointment = findViewById([Link]);
btnView = findViewById([Link]);
Button btnViewPatients = findViewById([Link]);
Button btnViewDoctors = findViewById([Link]);
[Link](v -> startActivity(new Intent(this,
[Link])));
[Link](v -> startActivity(new Intent(this,
[Link])));
[Link](v -> startActivity(new Intent(this,
[Link])));
[Link](v -> startActivity(new Intent(this,
[Link])));
[Link](v ->
startActivity(new Intent([Link], [Link])));
[Link](v ->
startActivity(new Intent([Link], [Link])));
}
}

Activity_Main.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">

<Button
android:id="@+id/btnAddPatient"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add Patient" />

<Button
android:id="@+id/btnAddDoctor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add Doctor"
android:layout_marginTop="10dp" />

<Button
android:id="@+id/btnBook"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Book Appointment"
android:layout_marginTop="10dp" />

<Button
android:id="@+id/btnView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="View Appointments"
android:layout_marginTop="10dp" />
<Button
android:id="@+id/btnViewPatients"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="View Patients"
android:layout_marginTop="10dp"/>

<Button
android:id="@+id/btnViewDoctors"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="View Doctors"
android:layout_marginTop="10dp"/>

</LinearLayout>

[Link]

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class DatabaseHelper extends SQLiteOpenHelper {

public static final String DATABASE_NAME = "[Link]";


public static final int DATABASE_VERSION = 2; // 🔥 IMPORTANT

public DatabaseHelper(Context context) {


super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {

[Link](
"CREATE TABLE patient(" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"name TEXT," +
"age TEXT," +
"phone TEXT)"
);

[Link](
"CREATE TABLE doctor(" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"name TEXT," +
"specialization TEXT," +
"availability TEXT)"
);

[Link](
"CREATE TABLE appointment(" +
"id INTEGER PRIMARY KEY AUTOINCREMENT," +
"patient TEXT," +
"doctor TEXT," +
"date TEXT," +
"time TEXT)"
);

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
[Link]("DROP TABLE IF EXISTS patient");
[Link]("DROP TABLE IF EXISTS doctor");
[Link]("DROP TABLE IF EXISTS appointment");
onCreate(db);
}

// ✅ Insert Patient
public boolean insertPatient(String name, String age, String phone) {
SQLiteDatabase db = [Link]();
ContentValues cv = new ContentValues();
[Link]("name", name);
[Link]("age", age);
[Link]("phone", phone);
return [Link]("patient", null, cv) != -1;
}

// ✅ FIXED Insert Doctor (WITH availability)


public boolean insertDoctor(String name, String spec, String availability) {
SQLiteDatabase db = [Link]();
ContentValues cv = new ContentValues();
[Link]("name", name);
[Link]("specialization", spec);
[Link]("availability", availability);
return [Link]("doctor", null, cv) != -1;
}
// ✅ Check if doctor already has appointment at same date & time
public boolean isTimeSlotAvailable(String doctor, String date, String time) {
SQLiteDatabase db = [Link]();

Cursor cursor = [Link](


"SELECT * FROM appointment WHERE doctor=? AND date=? AND time=?",
new String[]{doctor, date, time}
);

boolean available = [Link]() == 0;


[Link]();
return available;
}

// ✅ View Doctors
public Cursor getDoctors() {
SQLiteDatabase db = [Link]();
return [Link]("SELECT * FROM doctor", null);
}

// ✅ View Patients
public Cursor getPatients() {
SQLiteDatabase db = [Link]();
return [Link]("SELECT * FROM patient", null);
}

// ✅ Insert Appointment
public boolean insertAppointment(String patient, String doctor, String date, String time) {
SQLiteDatabase db = [Link]();
ContentValues cv = new ContentValues();
[Link]("patient", patient);
[Link]("doctor", doctor);
[Link]("date", date);
[Link]("time", time);
return [Link]("appointment", null, cv) != -1;
}

// ✅ Check if doctor already booked on same date


public boolean isDoctorAvailable(String doctor, String date) {
SQLiteDatabase db = [Link]();
Cursor cursor = [Link](
"SELECT * FROM appointment WHERE doctor = ? AND date = ?",
new String[]{doctor, date}
);

boolean available = [Link]() == 0;


[Link]();
return available;
}

// ✅ View Appointments
public Cursor getAppointments() {
SQLiteDatabase db = [Link]();
return [Link]("SELECT * FROM appointment", null);
}
}

[Link]

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class AddPatientActivity extends AppCompatActivity {
EditText etName, etAge, etPhone;
Button btnSave;
DatabaseHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_add_patient);
db = new DatabaseHelper(this);
etName = findViewById([Link]);
etAge = findViewById([Link]);
etPhone = findViewById([Link]);
btnSave = findViewById([Link]);
[Link](v -> {
String name = [Link]().toString().trim();
String age = [Link]().toString().trim();
String phone = [Link]().toString().trim();

// Empty check
if ([Link]() || [Link]() || [Link]()) {
[Link](this, "Please fill all fields", Toast.LENGTH_SHORT).show();
return;
}

// Mobile number validation (10 digits)


if (![Link]("\\d{10}")) {
[Link](this, "Invalid Mobile Number", Toast.LENGTH_SHORT).show();
return;
}

boolean inserted = [Link](name, age, phone);

[Link](this,
inserted ? "Patient Added Successfully" : "Error Adding Patient",
Toast.LENGTH_SHORT).show();

if (inserted) {
[Link]("");
[Link]("");
[Link]("");
}
});
}
}

Activity_add_patient.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<EditText
android:id="@+id/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Patient Name"
android:inputType="textPersonName"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ " />

<EditText
android:id="@+id/etAge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Age"
android:inputType="number"
android:maxLength="2"/>

<EditText
android:id="@+id/etPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Mobile Number"
android:inputType="phone"
android:maxLength="10"/>

<Button
android:id="@+id/btnSave"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Save Patient"
android:layout_marginTop="10dp" />
</LinearLayout>

[Link]

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

public class AddDoctorActivity extends AppCompatActivity {

EditText etName, etSpec, etAvailability;


Button btnSave;
DatabaseHelper db;

@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_add_doctor);

etName = findViewById([Link]);
etSpec = findViewById([Link]);
etAvailability = findViewById([Link]); // ✅ IMPORTANT

btnSave = findViewById([Link]);
db = new DatabaseHelper(this);

[Link](v -> {

String name = [Link]().toString().trim();


String spec = [Link]().toString().trim();
String availability = [Link]().toString().trim();

if ([Link]() || [Link]() || [Link]()) {


[Link](this, "Please fill all fields", Toast.LENGTH_SHORT).show();
return;
}

boolean inserted = [Link](name, spec, availability); // ✅ FIXED

[Link](this, inserted ? "Doctor Added Successfully" : "Error Adding Doctor",


Toast.LENGTH_SHORT).show();

if (inserted) {
[Link]("");
[Link]("");
[Link]("");
}
});
}
}

Activity_add_doctor.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">

<EditText
android:id="@+id/etName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Doctor Name"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ " />

<EditText
android:id="@+id/etSpec"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Specialization"
android:layout_marginTop="10dp"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ " />

<!-- ✅ ADD THIS -->


<EditText
android:id="@+id/etAvailability"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Availability (Available / Not Available)"
android:layout_marginTop="10dp"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ " />
<Button
android:id="@+id/btnSave"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add Doctor"
android:layout_marginTop="20dp" />

</LinearLayout>

[Link]

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

import [Link];
import [Link];

public class BookAppointmentActivity extends AppCompatActivity {

EditText etPatient, etDate;


Spinner spDoctor, spTime;
Button btnBook;
DatabaseHelper db;

ArrayList<String> doctorList, timeList;

@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_book_appointment);
db = new DatabaseHelper(this);

etPatient = findViewById([Link]);
etDate = findViewById([Link]);
spDoctor = findViewById([Link]);
spTime = findViewById([Link]);
btnBook = findViewById([Link]);

doctorList = new ArrayList<>();


timeList = new ArrayList<>();

// 📅 Date Picker
[Link](false);
[Link](v -> {
Calendar c = [Link]();
new DatePickerDialog(
this,
(view, year, month, day) ->
[Link](day + "/" + (month + 1) + "/" + year),
[Link]([Link]),
[Link]([Link]),
[Link](Calendar.DAY_OF_MONTH)
).show();
});

loadAvailableDoctors();
loadTimeSlots();

[Link](v -> {

String patient = [Link]().toString().trim();


String date = [Link]().toString().trim();

if ([Link]() || [Link]()) {
[Link](this, "Please fill all fields", Toast.LENGTH_SHORT).show();
return;
}

String doctor = [Link]().toString();


String time = [Link]().toString();
// 🔴 CHECK TIME SLOT
if (![Link](doctor, date, time)) {
[Link](this,
"Doctor not available at this time",
Toast.LENGTH_SHORT).show();
return;
}

boolean inserted = [Link](patient, doctor, date, time);

[Link](this,
inserted ? "Appointment Booked" : "Error",
Toast.LENGTH_SHORT).show();

if (inserted) {
[Link]("");
[Link]("");
}
});
}

// ✅ Load AVAILABLE doctors


private void loadAvailableDoctors() {
Cursor cursor = [Link]();
while ([Link]()) {
if ("Available".equalsIgnoreCase([Link](3))) {
[Link]([Link](1));
}
}
[Link]();

[Link](new ArrayAdapter<>(
this,
[Link].simple_spinner_dropdown_item,
doctorList
));
}

// ⏰ Fixed Time Slots


private void loadTimeSlots() {
[Link]("10:00 AM");
[Link]("11:00 AM");
[Link]("12:00 PM");
[Link]("2:00 PM");
[Link]("3:00 PM");
[Link]("4:00 PM");

[Link](new ArrayAdapter<>(
this,
[Link].simple_spinner_dropdown_item,
timeList
));
}
}

activity_book_appointment.xml

<?xml version="1.0" encoding="utf-8"?>


<ScrollView xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp">

<!-- Patient Name -->


<EditText
android:id="@+id/etPatient"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Patient Name"
android:inputType="textPersonName"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
/>

<!-- Appointment Date -->


<EditText
android:id="@+id/etDate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Select Date"
android:focusable="false"
android:layout_marginTop="10dp" />

<!-- Doctor Spinner -->


<Spinner
android:id="@+id/spDoctor"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp" />

<!-- Time Slot Spinner -->


<Spinner
android:id="@+id/spTime"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp" />

<!-- Book Button -->


<Button
android:id="@+id/btnBook"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Book Appointment"
android:layout_marginTop="20dp" />

</LinearLayout>
</ScrollView>

[Link]

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class ViewPatientsActivity extends AppCompatActivity {

ListView listView;
DatabaseHelper db;

@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_view_patients);

listView = findViewById([Link]);
db = new DatabaseHelper(this);

ArrayList<String> list = new ArrayList<>();


Cursor cursor = [Link]();

while ([Link]()) {
[Link]("Name: " + [Link](1) +
" | Age: " + [Link](2) +
" | Phone: " + [Link](3));
}
[Link](new ArrayAdapter<>(this, [Link].simple_list_item_1,
list));
}
}

Activity_view_patient.xml

<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
[Link]

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];

import [Link];

public class ViewDoctorsActivity extends AppCompatActivity {

ListView listView;
DatabaseHelper db;
ArrayList<String> doctorList;

@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_view_doctors);

listView = findViewById([Link]);
db = new DatabaseHelper(this);
doctorList = new ArrayList<>();

Cursor cursor = [Link]();

if (cursor == null || [Link]() == 0) {


[Link](this, "No Doctors Found", Toast.LENGTH_SHORT).show();
return;
}

while ([Link]()) {
String name = [Link](1);
String specialization = [Link](2);

[Link](
"Doctor Name: " + name +
"\nSpecialization: " + specialization
);
}

[Link]();

ArrayAdapter<String> adapter =
new ArrayAdapter<>(this,
[Link].simple_list_item_1,
doctorList);

[Link](adapter);
}
}

activity_view_doctor.xml

<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

[Link]

package [Link];

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
public class ViewAppointmentsActivity extends AppCompatActivity {
ListView listView;
DatabaseHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
[Link](savedInstanceState);
setContentView([Link].activity_view_appointments);
listView = findViewById([Link]);
db = new DatabaseHelper(this);
ArrayList<String> list = new ArrayList<>();
Cursor cursor = [Link]();
while ([Link]()) {
[Link](
"Patient: " + [Link](1) +
"\nDoctor: " + [Link](2) +
"\nDate: " + [Link](3) +
"\nTime: " + [Link](4)
);
}

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,


[Link].simple_list_item_1, list);
[Link](adapter);
}
}

activity_view_appointment.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="[Link]
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp">

<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</LinearLayout>

You might also like