Twitter Likes/Faves

development, projects

Now that Christmas is over I have decided to get on with my next project. Like the bookmarks tool I made, I am utilising another information source to create a tool for quicker/more visible development information. I have always used twitter as another source of information when it comes to programming/development work as it tends to highlight new and interesting updates in the dev world. Essentially I am going to gather the favourite/likes of a user to display via a user search.

To do so I have needed to apply for twitter API access. Luckily I was approved very quickly. However, it did take a bit of reading to make sure I got my application written correctly.

I intend to use bootstrap along with react in order to create a single page tool whilst gaining more insight with bootstrap as a CSS framework. First I’ll get it to search for a user’s likes and I may add extra features later if all goes well. For example, adding other people’s likes to my own account, therefore, saving for later reference.

Bookmarks visualiser

Bookmarks visualiser project screen shot of parsed bookmarks file.

To go back and solidify my vanilla JavaScript knowledge I decided to build out a bookmarks tool. In particular I wanted to make my bookmarks more visible and navigable, it has particularly annoyed me the way chrome does not have a directly viewable interface for them. So, using JS, SCSS, HTML and node.js I went about creating something I wanted to see.

To cover the most widely used file formats possible I found ways to parse and visualize exported html, Chrome json bookmark files and Mozilla jsonlz4 files. Originally I wanted the tool to auto read either the Mozilla or Chrome files depending on the browser in use. However, I soon came to realise that to do so you would have to access the users hard drive and for obvious security reasons this is not possible. Or is at least legally frowned upon! So, with the use of a couple of JavaScript packages I refactored it so the user could choose a file via a file input element. The file then gets uploaded to the express server via Multer and read by the corresponding parser depending on the file extension.

Ultimately I created a version of what I had set out to accomplish and learnt a fair few things along the way (Multer, file uploading and limitations). But now I have a much more visible and navigable way to utilise my collected resources and references in my bookmarks. Hurrah!!

React Native flash cards


I have now completed the Udacity React nano-degree by finishing and passing the react-native project. Although, as per usual, I went a bit further than what was required, so I could get as much out of this as possible. I successfully created a whole new section that displayed results for completed quizzes. Each result displayed: the category it related to, the highest score achieved, the date of that score, and how many times the quiz had been attempted. All of which is stored in the device via ‘async-storage’.

The use of styled components, transitions, and native platform specific material design was incorporated from the start. Some were required for the project and others were extras that I used to further my knowledge. There were also several new things learnt during this production, for example, how to actually nest different native navigation methods and the use of native specific react components.

I looked forward to this project in particular as I have been wanting to develop mobile apps for some time. Furthermore, being able to create such products using a widely used and accessible language makes it even more exciting and not too niche. Having said that, it is a little frustrating that I wasn’t able to simultaneously build it for iOS, due to not owning a mac. However, now I know the framework a bit better, once I have the hardware I will be able to take full advantage of React-Native.


React / Redux, ‘would you rather’


Straight after finishing the first React project I got on with the next section of the Udacity course. This part was all about including Redux and creating a single source of truth. I.E. holding data in a single place to avoid duplication or unintended changes which could create hard to solve bugs.

The project for this section asked me to create an app based around the game ‘would you rather‘. Using Redux, I would store user details and questions. The data also stored who had answered which questions and who created them. The user was also ranked based on the number of questions created and answered.

Creating this app proved to be a sound way to get my head around: reducers, actions and the implementation of basic UI transitions. After submission, I passed all the requirements and was given some great suggestions which I immediately refactored into the project, especially as I wanted to know the best ways of doing things. For example, separating concerns by not accessing a DOM element outside a component’s render function. I also found the way React updates the correct elements when the store state changes to be really interesting and a much more efficient way of doing things.

I managed to put all the required functionality in place well within the required / suggested time so went about adding extra features. For example, a sign up landing page where the user can log in to a previously created profile or create a new one. The signup form also had validation to make sure a new profile didn’t already exist. Ultimately, I learnt a lot from this project and it has given me more confidence to try new things moving forward.