BookMD 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.DS_Store +0 -0
- data/BookMD-0.1.7.gem +0 -0
- data/BookMD.gemspec +1 -1
- data/README.md +113 -13
- data/images/.DS_Store +0 -0
- data/images/Trelloboard.png +0 -0
- data/images/UMLflowdiagram.png +0 -0
- data/images/appointment.info.png +0 -0
- data/images/appointments.in.file.png +0 -0
- data/images/bookappointment1.png +0 -0
- data/images/caseloop.png +0 -0
- data/images/deleteappointment.png +0 -0
- data/images/eg.appointment.png +0 -0
- data/images/firstmenu.png +0 -0
- data/images/invalidinputissue.png +0 -0
- data/images/older repo.png +0 -0
- data/images/patientcreation.png +0 -0
- data/images/patientinfo.png +0 -0
- data/images/timeselect.png +0 -0
- data/images/upcoming.appointments.png +0 -0
- data/lib/BookMD/version.rb +1 -1
- data/lib/appointments.txt +8 -0
- data/lib/patients.txt +6 -0
- data/slide.deck.pptx +0 -0
- data/~$slide.deck.pptx +0 -0
- metadata +20 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78b0e3f3caa93487e9bd293c4efa5243c88d6822780c41d5f69f708db7cced0d
|
4
|
+
data.tar.gz: 7550abd8af4dcbfe103951aaa906c606ceb415713e16364ab7a476772359e443
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d41d79f8394dbee0ef7b14012b161ab8e2bd6d2799d7025a8a0c566d12a2dfe3f1cb8312818cd2c13e528c76b1298786631b38481c8d428996e1bec10badf73
|
7
|
+
data.tar.gz: addbade3f181871975585fe291dda6f06510255d74fc92b0a5fe83b110c7956ce00578f9826dc9b88ecda516f22b6850d36b73923774ccff626dd58333d3995c
|
data/.DS_Store
CHANGED
Binary file
|
data/BookMD-0.1.7.gem
ADDED
Binary file
|
data/BookMD.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
# spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
|
16
16
|
|
17
17
|
# spec.metadata["homepage_uri"] = spec.homepage
|
18
|
-
#
|
18
|
+
# spec.metadata["source_code_uri"] = https://github.com/GorginZ/BookMD
|
19
19
|
# spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
20
20
|
|
21
21
|
# Specify which files should be added to the gem when it is released.
|
data/README.md
CHANGED
@@ -1,34 +1,134 @@
|
|
1
1
|
# BookMD
|
2
2
|
|
3
|
-
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/BookMD`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
6
|
-
|
7
3
|
## Installation
|
8
4
|
|
9
|
-
|
10
|
-
|
11
|
-
```ruby
|
12
|
-
gem 'BookMD'
|
5
|
+
```
|
6
|
+
gem install 'BookMD'
|
13
7
|
```
|
14
8
|
|
15
9
|
And then execute:
|
16
10
|
|
17
11
|
$ bundle install
|
12
|
+
|
13
|
+
Dependencies:
|
14
|
+
|
15
|
+
"fileutils", "~> 1.4.1"
|
16
|
+
"simplecov", "~> 0.9.0"
|
17
|
+
"jeweler", "~> 2.3.9"
|
18
|
+
"tty-table", "~> 0.11.0"
|
19
|
+
"tty-box", "~> 0.5.0"
|
20
|
+
"tty-prompt", "~> 0.21.0"
|
21
|
+
|
22
|
+
|
23
|
+
## Statement of purpose
|
24
|
+
BookMD is a mock online dr appointment booker. BookMD takes user input from an appointment selection as well as patient information and writes this to text files and reads these text files to display the selections back to the user. It also allows users to cancel their appointments and make a new appointment if they want to change the appointment time. BookMD will return the user to the home menu ten seconds after it completes the requested function and displays a message to confirm to the user it has completed the function and will return them 'home'.
|
25
|
+
|
26
|
+
## A problem BookMD helps to solve...
|
27
|
+
(...)is the dr selection process. Booking online isn't really any simpler or easier in terms of user experience and this is reflected in any online appointment booking app that most of us have used - but online booking can address some other issues people may have if attending a practice as a new patient. An app that displays dr availability and also provides profiles with Dr information, areas of interest and the like provides something that can't be done on the phone and allows for people (especially new patients) to select a practitioner they feel meets their needs as a patient. The target audience for BOOKMD is anyone looking online for a new GP.
|
28
|
+
|
29
|
+
## BookMD and ethical issues
|
30
|
+
Any real appointment booker handling personal information and health information raises obvoius issues about how the data is stored, obtained and accessed, these are fairly broad and well understood issues so instead I would like to aknoelrdge this but instead comment on issues that would be specific to a medical appointment services (given my app is a mock booker and isn't actually handling data).
|
18
31
|
|
19
|
-
|
32
|
+
The aim of BookMD is to make appropriate care more accessible by allowing practices to have profiles for their GPs and help people find care more appropriate for them. Many women or chronic pain sufferers struggle navigating the medical industry and landing themselves a good regular GP because you just have to go and see what they're like - reviews aren't particularly useful and can often be misguided if people just didnt like the dr on an interpersonal level - what can be ueful is GPs who have special areas of interest being able to state their history and experience clearly in a profile. BookMD in the spirit of this goal would also not allow non-bulk billing practices or practices that don't do workcover or tac work to use their platform.
|
20
33
|
|
21
|
-
$ gem install BookMD
|
22
34
|
|
23
35
|
## Usage
|
24
36
|
|
25
|
-
|
37
|
+
To run open terminal, run:
|
38
|
+
|
39
|
+
"irb"
|
40
|
+
|
41
|
+
Then:
|
42
|
+
|
43
|
+
require "BookMd"
|
44
|
+
|
45
|
+
OR download all files and open the executable app in:
|
46
|
+
|
47
|
+
BookMd/bin
|
48
|
+
|
49
|
+
BookMD starts at a home menu with three pathways.
|
50
|
+
|
51
|
+
<img src="images/firstmenu.png" width="400" >
|
52
|
+
|
53
|
+
1 book appointment allows the user to view dr availability and select a dr, followed by appointment day via the same menu format.
|
54
|
+
|
55
|
+
<img src="images/bookappointment1.png" width="400" >
|
56
|
+
|
57
|
+
user then selects a time
|
58
|
+
|
59
|
+
<img src="images/timeselect.png" width="250" >
|
60
|
+
|
61
|
+
The appointment is displayed to the user and the user inputs their details which are written to a file.
|
62
|
+
|
63
|
+
|
64
|
+
<img src="images/patientinfo.png" width="400" >
|
65
|
+
<img src="images/eg.appointment.png" width="400" >
|
66
|
+
|
67
|
+
If the user selects option 2 after they return to the home menu they are able to view their new appointment
|
68
|
+
|
69
|
+
<img src="images/upcoming.appointments.png" width="400" >
|
70
|
+
|
71
|
+
If the user selects option 3 their appointment is deleted and they are returned to the home menu.
|
26
72
|
|
27
73
|
## Development
|
28
74
|
|
29
|
-
|
75
|
+
## Features
|
76
|
+
|
77
|
+
BookMD is just a mock appointment booker and isn't able to capture the dynamism or security necessary in a booking system but aims to capture three basic key functions through the executable console app:
|
78
|
+
|
79
|
+
## 1 - take user input and store as patient details in text file.
|
80
|
+
the make_patient method is called when the user progresses through the book appointment pathway. This method initializes a new object of the Patient class and assigns the attribute variables for name, phone, email and travel via gets-ing user input.
|
81
|
+
The scope of the Patient class instance variables means I am able to attribute these values to new objects of this class in the make_patient method, as they are visible to the make_patient method. The make_patient method is called in the printer method, where I use the append flag in order to add the patients hash (variable) and it's new_patient objects into into the patients.txt file.
|
82
|
+
|
83
|
+
Jesus Castello's contributions in Ruby guides provided a helpfulguide to passing flags through the command line when working with files in ruby code:
|
84
|
+
|
85
|
+
https://www.rubyguides.com/2015/05/working-with-files-ruby/
|
86
|
+
|
87
|
+
<img src="images/patientcreation.png" width="400" >
|
88
|
+
|
89
|
+
## 2- creating and storing appointment (DR, day and time) using a selection menu.
|
90
|
+
The appointment is initialied as an object of the Appointments class. It's instance variables get their values from these methods below. I utilised the TTY gems TTY prompt's select and multi_select to get user input. These methods run if the user selects the Book Appointment pathway which utilizes a case conditionasl when loop as the pathway flow controller. I utilized the TTY prompt for my selection to eliminate the issue of invalid or accidental input from the user, and given the choices are always going to be fixed - based on the availability of appointments on particular days, this seemed appropriate.
|
91
|
+
|
92
|
+
More about the TTY toolkit can be found here:
|
93
|
+
I utilized a number of the tty gems - prompt and table are the only I ended up keeping in my final app in the end
|
94
|
+
|
95
|
+
https://ttytoolkit.org/
|
96
|
+
https://medium.com/@reireynoso/tty-prompt-select-for-handling-user-inputs-aed13f46c8bc
|
97
|
+
|
98
|
+
<img src="images/caseloop.png" width="400" >
|
99
|
+
<img src="images/appointment.info.png" width="400" >
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
## 3 Managing appointments
|
104
|
+
Users are able to view the appointments they have made and delete them. The conditional loop seen above will run the delete appointment method if the user input is '3' in the main selection menu. The delete method runs, opens the appointments text file and deletes (using the out_file file method) the line with the appointment. I have had trouble with this deleting all appointments if there are multiple appointments, however.
|
105
|
+
|
106
|
+
I modified a block of code suggested in this forum where someone had a similar question to me.
|
107
|
+
https://stackoverflow.com/questions/37515509/how-to-delete-specific-lines-in-text-file
|
108
|
+
|
109
|
+
<img src="images/deleteappointment.png" width="400" >
|
110
|
+
|
111
|
+
Pathway
|
112
|
+
<img src="images/UMLflowdiagram.png">
|
113
|
+
|
114
|
+
|
115
|
+
Planning and development of project
|
116
|
+
<img src="images/Trelloboard.png">
|
117
|
+
|
118
|
+
this is my old repo - because I made this project a gem I created a new repo with the name of the application.
|
119
|
+
<img src="images/older repo.png">
|
120
|
+
|
121
|
+
|
122
|
+
## Testing
|
123
|
+
I was unable to write a good rspec test due to time constraints, but was able to manually test throughout and have other people use my app who were unfamiliar with the pathways.
|
124
|
+
|
125
|
+
One point of failure that are easily able to be reproduced are the error when the user provides invalid input in the first menu.
|
126
|
+
|
127
|
+
Another is that the app deletes all appointments instead of just the last appointment, although this isn't so much an error as just a bad way to delete.
|
128
|
+
|
129
|
+
<img src="images/invalidinputissue.png" width="400">
|
130
|
+
|
30
131
|
|
31
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
132
|
|
33
133
|
## Contributing
|
34
134
|
|
data/images/.DS_Store
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/images/caseloop.png
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/BookMD/version.rb
CHANGED
data/lib/appointments.txt
CHANGED
data/lib/patients.txt
CHANGED
@@ -300,3 +300,9 @@ n
|
|
300
300
|
|
301
301
|
{:Name=>"HI", :Phone=>"HI", :Email=>"HI", :Travel=>"N"}
|
302
302
|
|
303
|
+
{:Name=>"Georgia Leng", :Phone=>"0987676433", :Email=>"lasdkfj@email.com", :Travel=>"N"}
|
304
|
+
|
305
|
+
{:Name=>"GORG", :Phone=>"GORG", :Email=>"GORG", :Travel=>"N"}
|
306
|
+
|
307
|
+
{:Name=>"georgia", :Phone=>"2345346435", :Email=>"email", :Travel=>"N"}
|
308
|
+
|
data/slide.deck.pptx
ADDED
Binary file
|
data/~$slide.deck.pptx
ADDED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: BookMD
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GorginZ
|
@@ -126,6 +126,7 @@ files:
|
|
126
126
|
- BookMD-0.1.4.gem
|
127
127
|
- BookMD-0.1.5.gem
|
128
128
|
- BookMD-0.1.6.gem
|
129
|
+
- BookMD-0.1.7.gem
|
129
130
|
- BookMD.gemspec
|
130
131
|
- CODE_OF_CONDUCT.md
|
131
132
|
- Gemfile
|
@@ -136,6 +137,22 @@ files:
|
|
136
137
|
- appointments.txt
|
137
138
|
- bin/console
|
138
139
|
- bin/setup
|
140
|
+
- images/.DS_Store
|
141
|
+
- images/Trelloboard.png
|
142
|
+
- images/UMLflowdiagram.png
|
143
|
+
- images/appointment.info.png
|
144
|
+
- images/appointments.in.file.png
|
145
|
+
- images/bookappointment1.png
|
146
|
+
- images/caseloop.png
|
147
|
+
- images/deleteappointment.png
|
148
|
+
- images/eg.appointment.png
|
149
|
+
- images/firstmenu.png
|
150
|
+
- images/invalidinputissue.png
|
151
|
+
- images/older repo.png
|
152
|
+
- images/patientcreation.png
|
153
|
+
- images/patientinfo.png
|
154
|
+
- images/timeselect.png
|
155
|
+
- images/upcoming.appointments.png
|
139
156
|
- lib/.DS_Store
|
140
157
|
- lib/BookMD.rb
|
141
158
|
- lib/BookMD/version.rb
|
@@ -148,7 +165,9 @@ files:
|
|
148
165
|
- lib/test.rb
|
149
166
|
- lib/user.rb
|
150
167
|
- patients.txt
|
168
|
+
- slide.deck.pptx
|
151
169
|
- test.rb
|
170
|
+
- "~$slide.deck.pptx"
|
152
171
|
homepage: https://github.com/GorginZ/BookMD/tree/master/lib
|
153
172
|
licenses:
|
154
173
|
- MIT
|