001110010100101010100101001010100101101001010

1100101010100111011010100101010100101010101001

000101010101011111100101010101001010101001010100

001010100101101010111101010101101000110011010010

11001010101001010101011100101011100100101010000111010010101010100001010

1101001010010001110010110110010110000110000110010010101001

1001001010101001110010111001010100101000010101001010010

10010010101010101001001111010100110111010011010100010100100

10101010101010100101110100101001010010101010100111001010010010100

10001100101010101011001010100101011000100101001010

11100101010101010100110101011001011101100101010

000101001011100010100111001010110000110101100001100

1100111101101110011100001010101101100001100101

000110101011011101010000001010110001100101010010

110101110110101100011100000111000001010101010100

101010100001011100000011001101100001010101010

01010101010101010011010001011001010101011001001010

1101010110110101100111100000101001010101001110001100100100010101001010

0000110101010110010000101001010100101010100001100001010

11101010110010101011100101011110010110010010

0101111000010100001010101010101010000101000101010000101010

1101111000010101111000001010101010100011000101010

000010010110001111000000101001110000101010

10101001110101010000011100001110010101010100

110101101011000101101010100101010100101010101010

00001101010101100100001010010101001100001100001010

001110010100101010100101001010100101101001010

1100101010100111011010100101010100101010101001

000101010101011111100101010101001010101001010100

001010100101101010111101010101101000110011010010

11001010101001010101011100101011100100101010000111010010101010100001010

1101001010010001110010110110010110000110000110010010101001

1001001010101001110010111001010100101000010101001010010

10010010101010101001001111010100110111010011010100010100100

10101010101010100101110100101001010010101010100111001010010010100

10001100101010101011001010100101011000100101001010

11100101010101010100110101011001011101100101010

000101001011100010100111001010110000110101100001100

1100111101101110011100001010101101100001100101

000110101011011101010000001010110001100101010010

110101110110101100011100000111000001010101010100

101010100001011100000011001101100001010101010

01010101010101010011010001011001010101011001001010

1101010110110101100111100000101001010101001110001100100100010101001010

0000110101010110010000101001010100101010100001100001010

11101010110010101011100101011110010110010010

0101111000010100001010101010101010000101000101010000101010

1101111000010101111000001010101010100011000101010

000010010110001111000000101001110000101010

10101001110101010000011100001110010101010100

110101101011000101101010100101010100101010101010

00001101010101100100001010010101001100001100001010

BiblioTech: The Project that began it all

I knew at some point, it was time to stop learning, and time to start coding.

In the freeCodeCamp Quality Assurance course, I was introduced to a library called Pug, previously known as JADE.

Equipped with knowledge of RESTful API's, Express applications and the all-mighty Node.js, I began to grow restless in learning theory, as I began to realize that all the tools necessary to create something really cool, were all at my fingertips.

Inspired by my enthusiasm for books, the idea of a simple book keeping application quickly came into nascent existence. It would not be known until long after, as 'BiblioTech'. The french word for library, with a bit of my own personal touch.

For my first independent full stack application, BiblioTech proposed numerous challenges, none of which I shied away from.

The concept of what BiblioTech would become expanded exponentially as the app was created. At first, it was meant to be a simple webpage permitting the search of book titles and authors.

Mainipulating variables in Pug in order to render a dynamic DOM proved to be relatively simple.

I utilized the Open Library API for information on authors, and the Google Books API for information on Book titles and embedded book previews using the ISBN numerical system.

Rendering the Google Books Embedded Previewer proved to be slightly challenging. I deferred to Google's easy setup wizard for functions to embed, making the process rudimentary. A couple of inline conditionals, made possible with Pug's implementation of variables, allowed for dynamic rendering of the embedded view.

An image of the obsolete BiblioTek Design

BiblioTech's Old Design, rendering the Google Books Embedded Viewer

I saw a far greater potential in my budding library application... and my insight lacked no motivation to take action.

I began to implement user authentication using MongoDB, another cherished technological skill I acquired with freeCodeCamp.

This is where the complexity of the app increased tenfold... I was now authenticating user sessions with Passport, hashing and salting passwords with Bcrypt, and storing user preferences with MongoDB's mnemonic querying functionality.

The use of Passport's sessions along with Pug's dynamic display variables allowed me to transform BiblioTech from a simple search-n-read application to a user based experience, complete with a profile page.

Completion of the user authentication system was the bulk of BiblioTech's inspiring challenge. When the app finally rendered correctly, I thought I had completed my first full stack application. Oh, how wrong I was.

I felt the missing piece of the puzzle was ingenuity. Anyone could make a book keeping application... but is every such app custom tailored to the User's preferences?

Creating various backgrounds for the website based on the choice of the user was a lot of fun. The use of variables, mixins, and other features of Sass made this implementation quite simple.

Unfortunately, with BiblioTech being my first application, many mistakes were made, especially when it came to styling.

I learned a great deal in the process of making the app responsive. I realized the benefits of utilizing units such as em for font sizes, and percentages for widths and heights. No longer would my code be riddled with fixed pixel measurements.

It was an ardous and meticulous process to make the app repsonsive on all screen sizes. The first outcome of the wesbsite was far from perfect, and new methods of improvement and innovation are still being thought of to this day.

An image of the obsolete BiblioTek Design

BiblioTech's Old Design, with the Sci-Fi Theme Applied

Indubitably, BibilioTech has the greatest potential for future expansion out of all my finished projects.

Putting the first phase of creation to a rest was tough, but I sought to better my portfolio with multiple projects.

There was a pending ambition to expand BiblioTech's domain to writing as well as reading. There would be a user submitted short story feature, where user created content can be displayed for others to read.

This is still a likely possibility for the future. Perhaps more interactibility between user accounts will be added as well, such as a friend system, similar to FaceBook, or more likely a follower system like that of Instagram or Twitter.

Stay tuned, for BiblioTech could posiibly be the dawn of a beast much greater in size and ferocity.

Return to Home