Beginning the Project
Many great web frameworks exist; for this project I chose Ruby on Rails. Since the framework is so popular, gems (extensions) exist that will greatly simplify much of the process. Rails also has a great support community available to help when I run into trouble.
A few examples of great gems are: devise cancan, and rolify - Together these gems provide a very powerful and robust way of managing users and permissions. The app has three permission levels researchers, researcher assistants, and admins. Each of these groups will have certain rights and retrictions which are easily managed through these gems.
fog - used to interact with amazon web services through ruby code. Fog can manage amazon instances and files though simple ruby functions.
twitter-bootstrap-rails and simple-form-for - automatically makes forms with bootstrap components, greatly improving design with minimal additional coding.
Setting personal goals outside the simple scope of the project is important to me. I am still learning, and a good way to keep learning is to focus on things that I need to improve while working on a project.
I have a few goals for this project, but most importantly I want to focus on testing. Testing is extremely useful, both for making sure code does what is expected, and ensuring that code wont be broken in the future.
Unfortunately I often overlook testing though. It is often hard to see the time that it saves since it doesn’t directly convert to progress on the site. However, it saves a lot of time by catching errors before they are published. It also is often easier to design a function when you can test in as you build.