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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3a3345e64379c52fff5c89d0c8d564a0d408634ddedf6076b4a942499b24b4d4
4
- data.tar.gz: 3748d909877e9600ff31324a77cca3153805d6ea48b9768d3d29eaa794055fec
3
+ metadata.gz: 78b0e3f3caa93487e9bd293c4efa5243c88d6822780c41d5f69f708db7cced0d
4
+ data.tar.gz: 7550abd8af4dcbfe103951aaa906c606ceb415713e16364ab7a476772359e443
5
5
  SHA512:
6
- metadata.gz: cd4c77d4d350cb425fe4889abe7c2e56b6975d5d7cf9f8e5b1f85eff0a7b5bcea2434e72d1f91f2b5aba831ce8b3d0b731f871e2344e1e31ed64edd95f3ac934
7
- data.tar.gz: e68af0aae6f44a93bc14af33d8ebe2a5437d6964428918ae3dac0e4f39c805c1ff57d1cc79abf15e039b97d838c3669837bb0e75c48ef2df355f03e90036502b
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
- # spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
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
- Add this line to your application's Gemfile:
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
- Or install it yourself as:
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
- TODO: Write usage instructions here
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
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
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
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,3 +1,3 @@
1
1
  module BookMD
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
data/lib/appointments.txt CHANGED
@@ -0,0 +1,8 @@
1
+ Dr: Dr. Gregor
2
+ Day: Monday
3
+ Time: ["\"8.30\""]
4
+
5
+ Dr: Dr. Gregor
6
+ Day: Monday
7
+ Time: ["\"8.30\""]
8
+
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.7
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