For this annotated bibliography, it makes the most sense to look at sources from several topics, such as security, application design, and subject matter expertise, since those are 3 very distinct yet equally important aspects to this practicum project.
10 Tips for Creating a Cookbook | Blurb Blog. (2017, October 31). Retrieved May 21, 2019, from https://www.blurb.com/blog/10-tips-creating-cookbook/
To make sure your cookbook turns out as well as your food, here are 10 tips for getting that pro-look and saving time and hassle once you leave the kitchen. While this blog is intended for hard-cover cookbooks, there are tips in here that can apply to a digital cookbook as well. This will be invaluable while designing the UI of the application
Allrecipes | Food, friends, and recipe inspiration. (n.d.). Retrieved May 22, 2019, from Allrecipes website: https://www.allrecipes.com/
Find and share everyday cooking inspiration on Allrecipes. Discover recipes, cooks, videos, and how-tos based on the food you love and the friends you follow. This is another site for inspiration for my own app. This website is missing the cookbook feature, and overall their landing page feels a little cluttered, but at the same time they present a lot of information to the user.
BakeSpace - Food community, recipes, cookbooks & cooking contests. (n.d.). Retrieved May 21, 2019, from http://www.bakespace.com/
This website is similar to what I am trying to create, however, this is less of a public recipe browsing space and more of a cookbook-only application. They have some interesting design choices that provide some interesting ideas about laying out a digital recipe website. I like their tile view, although it does get a little busy at times.
Food and Recipe API. (n.d.). Retrieved May 21, 2019, from spoonacular website: https://spoonacular.com/food-api
The Food and Recipe API allows you to tap into a great resource of recipes, ingredients, grocery products, and restaurant menu items to build awesome food apps. In order for my application to be successful, it has to have a powerful backing data source. This api should provide instant access to a lot of recipes to make this platform instantly useful. It is worth noting that this API has an education tier that costs $10 a month.
Food is heating up on Pinterest. (n.d.). Retrieved May 22, 2019, from Pinterest Business website: https://business.pinterest.com/en/blog/food-is-heating-up-on-pinterest
Although Pinterest is not exclusively in the recipe / cookbook domain, they are in fact a general go-to application for users everywhere for their cooking needs. This article discusses some of the trends happening in the Pinterest world, along with tangential features that Pinterest offers that users are taking advantage of. This article will be useful in determining critical extra features for my application.
Github. (2019, May 23). Dependabot is joining GitHub. Retrieved July 16, 2019, from https://dependabot.com/blog/hello-github/
Dependabot is an open source tool designed to automatically help with front-end dependencies by keeping them up-to-date and vulnerability-free! I had the happy accident to have encountered this tool in my practicum project when it raised an automated PR to fix a high priority vulnerability with lodash in my project.
Goldstein, A. (2018, October 11). Learn From the Best: Vulnerability Management Best Practices from the Best in the Business. Retrieved July 16, 2019, from https://resources.whitesourcesoftware.com/blog-whitesource/vulnerability-management-best-practices
Security is important in today's day and age, and everybody in the software business has to play their part. Since I am consuming open source software in my project, it is my responsibility to ensure that I update my dependencies with vulnerability free versions of the packages I consume as they are found and patched. This blog highlights some processes and tools to stay on top of the ever-evolving world of cyber security.
How Secure is Social Login? (2018, July 5). Retrieved May 22, 2019, from Okta website: https://www.okta.com/security-blog/2018/07/how-secure-is-social-login/
How Secure is Social Login? Okta weighs in, to answer all of your social sign in questions. This is an important article, because choosing social login as the primary (if not sole) form of authentication is a big design decision. This blog provides evidence as to why this is an acceptable if not standard choice.
Janetakis, N. (2017, September 12). Ngrok, lvh.me and nip.io: A Trilogy for Local Development and Testing. Retrieved July 16, 2019, from https://nickjanetakis.com/blog/ngrok-lvhme-nipio-a-trilogy-for-local-development-and-testing
Developing and testing locally with modern web apps can sometimes be tricky. Because of this, it's important to be aware of the tools out there to help with various things. One such tool are the various free-to-use wildcard DNS services. This blog talks about nip.io but xip.io does a similar thing. It allows you to develop locally with wildcard DNS routing, which is useful if you want to test components of microservices that depend on domain-based routing!
Krishnan, D., & Kelly, A. (n.d.). Springfox Reference Documentation v.2.9.2. Retrieved July 16, 2019, from https://springfox.github.io/springfox/docs/current/
This tool was created to make adding Swagger to Spring Boot projects easier and more straight forward. This documentation describes several things I used in my project, namely: The Swagger UI, and Swagger Docs aggregations, since I created an extra API with the sole purpose of creating swagger docs for my applications.
Krunal. (2019, June 03). How To Update Angular CLI To Version 8: Angular 8 CLI Upgrade. Retrieved July 16, 2019, from https://appdividend.com/2019/06/03/how-to-update-angular-cli-to-version-8-angular-8-cli-upgrade/
Dependency updates are a required part of the software development lifecycle. During the course of this project, Angular 8 was released, and so in order to stay as up-to-date as possible, I upgraded my application from Angular 7 to Angular 8, and this blog guided me through everything to do that.
McPeak, A. (2017, December 04). The 8 Must-Have Non-Technical Skills in Software Development. Retrieved July 16, 2019, from https://smartbear.com/blog/test-and-monitor/the-8-must-have-non-technical-skills-in-software-d/
Organization is important in software engineering. I'd always kept scribbles around my desk as I'm working on various things, but I've slowly started to migrate to try to be more organized. The Field Notebook project has helped tremendously with this, and in fact, this blog help illustrate several of the skills that the field notebook reinforces.
Mortensen, D. (n.d.). How to Create an Intuitive Design. Retrieved May 22, 2019, from The Interaction Design Foundation website: https://www.interaction-design.org/literature/article/how-to-create-an-intuitive-design
This blog discusses the components that go into a intuitive user interface. Some takeaways are to try to use similar symbols from around the industry for similar functions, as users become accustomed to these things and it will increase their understanding of the application.
My CookBook Online. (n.d.). Retrieved May 21, 2019, from https://www.mycookbook-online.net/en/home/
This site is a classic example of how this application idea is attempted to be fully monetized. Their free platform is a joke in that you are limited to 30 recipes, 1 import per day, and they serve ads. This landing page gives great ideas for the welcome page of my application.
Okta. (2019, May 21). OpenID Connect & OAuth 2.0 API | Okta Developer [Software Engineering Guide]. Retrieved May 21, 2019, from Okta Developer Guide website: https://developer.okta.com/docs/api/resources/oidc/#request-parameters
Okta is a OpenID Connect and OAuth 2.0 provider along with middleman. They provide a platform that does much of the heavy lifting as far as integrating with other auth providers, along with allowing users to register or log in themselves to the platform. This article is a practical explanation to their product, along with an overview as to how you can expect it to work.
Schroers, J. (2019). I have a Facebook account, therefore I am – authentication with social networks. International Review of Law, Computers & Technology , 33(2), 211–223. https://doi.org/10.1080/13600869.2018.1475895
Social login is the use of a social network account to get access to other services. Since the internet in its architecture does not have the possibility to identify the internet user, for many services, social logins are the solution to authenticate users without the need to set up individual identity management systems. Social logins are not useful for all types of services, however, and the potential lock-in and lock-out of users needs to be considered.
SmartBear Software. (2019). What is Swagger. Retrieved July 16, 2019, from https://swagger.io/docs/specification/2-0/what-is-swagger/
This is a resource for using Swagger. Swagger is an api documentation engine that is designed to change and grow with your application, since it can be auto generated by the build process / running application.
The absolute best way to organize your recipes from ALL sources in one place - Foodess.com. (n.d.). Retrieved May 22, 2019, from Foodess website: https://foodess.com/article/absolute-best-way-organize-recipes-sources-one-place/
The final word on how to organize your recipes from websites, cookbooks, print magazines, tablet magazines, emails, your mom's index cards, even apps - all in one super-convenient cloud-based spot. The importance of this blog is that it discusses several key use cases in recipe organization, which provide features people desire in their digital cookbook assistants.
TheMealDB.com. (n.d.). Retrieved May 21, 2019, from https://www.themealdb.com/api.php
This is another Recipe API. It will be good to be able to compare and contrast features of two Recipe API's in order to pick the one that will work the best for this project. On the one hand, this API is free, but it's support and features are limited in comparison.
WebFX, W. C. P. of, & Inc. (2011, May 30). 10 Important UI Design Considerations for Web Apps. Retrieved May 22, 2019, from WebFX Blog website: https://www.webfx.com/blog/web-design/10-important-ui-design-considerations-for-web-apps/
Written through the eyes of a web app developer, this article shares 10 lessons learned while designing a web application interface. This blog emphasises the importance of the first impression, and reiterates just how important it is to capture the audience at first glance.
When and How You Should Denormalize a Relational Database. (n.d.). Retrieved May 22, 2019, from https://rubygarage.org/blog/database-denormalization-with-examples
Building a high-performance application is impossible without a properly structured and optimized database. Developers do their best to normalize relational databases, but sometimes they need to resort to an opposite process – denormalization. We've written this article to shed light on when and how you should denormalize a database and the drawbacks of this technique. This article is important because I am proposing a denormalized data structure for recipe and cookbook storage.
Wintermute, H. E. (2017). The Joy of Cataloging Community Cookbooks. Cataloging & Classification Quarterly, 55(4), 197–228. https://doi.org/10.1080/01639374.2017.1291461
Countless fundraiser or community cookbooks produced over the years provide ample research potential for history and social scholars. The production quality and the ephemeral nature of these cookbooks pose descriptive challenges when adding them to library catalogs. While Resource Description and Access brings more flexibility to the descriptive process, the current dependence on MARC records still imposes some restrictions on encoding the descriptive elements. Libraries are starting to transition towards a linked data environment using the Bibliographic Framework (under development by the Library of Congress), which will result in a richer and more flexible environment for bibliographic control. Ultimately, this article helps to quantify the common good that can be brought forth by creating such an application. Creating a space for people to freely share their heritage is important for society.