Inspiration
I completed the First Aid Merit Badge in the summer of 2018, during a weeklong course at my summer camp, which I felt covered a lot of material in a short amount of time. Recently, I realized that a lot of the skills I had learned from that First Aid class were fading away, and I wanted to give myself a refresher course, and I knew that a lot of my peers in scouts would benefit from it too. When you spend a lot of time in the woods, First Aid knowledge is critically important during emergencies and it would definitely pay off in the future to be knowledgeable and sure about First Aid remedies. I spoke to my immediate family about my idea for this project, and I also spoke to some of my friends, and I found that a lot of them felt they would benefit from a First Aid course or refresher. My target audience is Scouts, but this program could also be very useable for people who don't go camping often, because medical emergencies can happen anywhere, and you never know when it might pay off to at least know the basics.
What it does
My program will: Display all of the First Aid Merit Badge requirements, and run a 10 question test on some of the material discussed in the badge. If you wish to take a closer look at a certain requirement, you can easily navigate to a page which will go over the requirement and tell you everything you need to know about it. Unfortunately, due to time constraints, I was unable to type the answers and "everything you need to know" for every requirement, but I got the navigation algorithms down. Basically, this part of the program is fully functional, it just doesn't have content on every page yet. The 10 question test is only 10 questions at the moment, but it is built in a way that to add more questions, it would only be a matter of copy pasting certain segments of code and making slight edits. The 10 questions are displayed one at a time, in a random order. Additionally, all the answers to the questions are also displayed in a random order. This means that each time you take the test, the questions will be the same, but the order of the questions and the order of the answers will change each time. The test also keeps track of your score, and at the end of the test, it displays your score out of 10. If you got any problems wrong, the program will display the problems you got incorrect and also explain the correct answer. If you were to get a 10/10, you are presented with a congratulations message.
How I built it
I built it using the Eclipse IDE and programming in Java. The program runs in the console, because I do not know how to create a user interface. I began working on it Friday night for a few hours, slept on my ideas, and then promptly coded away Saturday afternoon and night. The program is 1200 lines.
Challenges I ran into
My main challenge was remembering how to do Java. The last time I used Eclipse was early last year, and I must confess, I was out of practice. There were many occasions where I looked through my old programs, desperately trying to find a specific code segment to job my memory of Java syntax. I ran into a couple of issues that puzzled me, but ended up being mild syntax errors, which I figured out after a good 20 or so minutes of pondering. But by far the most perplexing challenge I had while programming was in a certain part of my code, the randomization of the order of questions and randomization of the order of answer to questions. I kept on running into problems where my program would either get stuck in an infinite loop or would repeat the same answer or same question despite my efforts to make sure it wouldn't repeat itself. In the end, with a combination of OR operators, arrays, and for loops, I finally managed to conquer this challenge. I cannot even begin to describe the euphoria. I immediately stood up from my desk, marched to my sisters room, and loudly declared, "I AM THE BEST," before marching back downstairs to get myself a drink of water and revel at my own genius. Of course, I am mostly joking around here, but if you are an experienced programmer, I know that you know exactly what I'm talking about.
Accomplishments that I'm proud of
First and foremost, conquering randomization and making sure my questions and answers wouldn't repeat themselves is my most satisfying accomplishment from my first Hackathon. I'm also proud of how much code I was able to spit out (1200 lines), and how long I was able to code for.
What I learned
I learned a lot about the Computer Science community, and I learned what a Hackathon actually is. I got to attend two workshops, about Python coding and IOS development, which I really enjoyed. I also got to refresh my memory on First Aid remedies.
What's next for First Aid Guide
I was a little too ambitious when I first started drafting the plan for my program, and I wasn't able to include all the features I wanted to. Something I really wanted to add, but ran out of time to do so, was a flashcards feature, for quick review and study. I also obviously need to fill out the specifics for the Merit Badge Requirements, and add more questions to the quiz. A huge limitation for this project, unfortunately, was my own programming knowledge. The only high level language I am comfortable with at the moment is Java, but only in the console, so before I even started, I knew that I would be limited in terms of my UI. When I first drafted my project, I realized, that with some modifications, it would probably make a really good IOS app as a First Aid quick reference and guide for First Aid Merit Badge. In this format my program would be able to be shared to a larger audience and it would be more accessible because in an emergency people are more likely to have their phones nearby than their computer. I am very interested in learning IOS development, and if anybody reading this has any advice, or would be willing to teach me or at least point me in the right direction, I would greatly appreciate it.
Log in or sign up for Devpost to join the conversation.