Hosmo is a patient management application developed using React Native and Supabase as the backend. The application allows patients to book appointments with specific doctors through a mobile-friendly interface. Doctors can manage patient appointments, schedules, and related information directly from their devices. The platform also includes an admin panel for hospitals to manage doctors, appointments, and patient records efficiently. This project demonstrates real-time backend integration, authentication, mobile application development, and healthcare management workflows.
-
Install dependencies
npm install
-
Start the app
npx expo start
Open the application on EXPO_GO using url or scanning QR code
create table public.users (
id bigint generated by default as identity not null,
created_at timestamp with time zone not null default now(),
user_id text null,
full_name text null,
contact text null,
gender text null,
birth_date text null,
blood_group text null,
address text null,
constraint users_pkey primary key (id)
) TABLESPACE pg_default;create table public.doctor (
id bigint generated by default as identity not null,
created_at timestamp with time zone not null default now(),
doctor_id text null,
hospital_id text null,
full_name text null,
contact text null,
gender text null,
specialization text null,
qualification text null,
license_number text null,
experience_years text null,
open_time text null,
closed_time text null,
break_start text null,
break_end text null,
status text null,
total_appointment integer null,
live_patient text null,
constraint doctor_pkey primary key (id)
) TABLESPACE pg_default;create table public.doctor (
id bigint generated by default as identity not null,
created_at timestamp with time zone not null default now(),
doctor_id text null,
hospital_id text null,
full_name text null,
contact text null,
gender text null,
specialization text null,
qualification text null,
license_number text null,
experience_years text null,
open_time text null,
closed_time text null,
break_start text null,
break_end text null,
status text null,
total_appointment integer null,
live_patient text null,
constraint doctor_pkey primary key (id)
) TABLESPACE pg_default;create table public.history (
id bigint generated by default as identity not null,
created_at timestamp with time zone not null default now(),
user_id text null,
doctor_id text null,
hospital_id text null,
status text null,
patient_name text null,
doctor_name text null,
hospital_name text null,
constraint history_pkey primary key (id)
) TABLESPACE pg_default;create table public.queue (
id bigint generated by default as identity not null,
created_at timestamp with time zone not null default now(),
user_id text null,
doctor_id text null,
hospital_id text null,
your_number text null,
status text null,
constraint queue_pkey primary key (id),
constraint unique_user_id unique (user_id)
) TABLESPACE pg_default;create table public.queue (
id bigint generated by default as identity not null,
created_at timestamp with time zone not null default now(),
user_id text null,
doctor_id text null,
hospital_id text null,
your_number text null,
status text null,
constraint queue_pkey primary key (id),
constraint unique_user_id unique (user_id)
) TABLESPACE pg_default;1.Enable pg_cron(run once)
create extension if not exists pg_cron;
2.Schedule the delete job
select cron.schedule('delete_queue_nightly','59 23 * * *',$$DELETE FROM queue;$$);
3.verify the job
select * from cron.job;
4.stop the job
select cron.unschedule('delete_queue_nightly');