Fitness time

Fitness time is the first application I had deploted to the Google Play store. Fitness Time is a fitness inspired timer. Fitness time empowers you to keep track of your fitness activities while using familiar modes like stopwatch mode and timer mode.Fitness time also allows you to minimise the application into a modal, so you can multitask and use other applications whilst keeping track of your workout.

download on google play below

Get it on Google Play

PI motion detection

A while back I bought a Raspberry PI B+ and it has been sitting there catching dust, so I decided to do a small Pi project just to keep me busy whenever I got bored. So I bought the Raspberry Pi NoIR Camera Module on Amazon for about £20 and wanted to make a security camera that would do what I expect a modern security camera would do, for example, detect motion, upload to the cloud and send email notifications.

I decided to use python because I found a really useful library called Picamera which was able to do motion detection. After fixing the camera module to the PI I found some boilerplate code to get motion detection working in Picamera’s documentation. After running the snippet I was able to turn the camera on and record when every motion was detected and displayed messages in the console log when an event happened.

I encountered a few problems, for example, each recording would overwrite each other because the files would have the same name. I was able to fix that by adding a simple time stamp to the video file.

After getting that sorted I work on getting email notifications working using a library called smtplib. Using this I was able to send a basic email from myself to myself saying that there was motion detected.

My final task was to get the camera to upload each video to Dropbox and I was able to achieve that using their python library.

Royal mail tracking application

The RoyalMail Tracking app is a postal tracking app that allows you to track fulfilment of your posts. There are a few applications that allow you to track your mail, but I decided to create my own that would have all the feature I would like in an tracking app.

The look and feel of most mail applications feel dated, so I built this application using google material design. When designing the RM application I wanted the application to appear as simple as possible, rather than being bombarded with information and actions to perform. From the main screen which lists the tracking numbers the user has added, the user can tap an entry to view more details. The server would even try to find an image related to the title of the item.

RM tracking relies on a server I have built, which has a REST API which scraps content from Royal mail website for related tracking information. The server will save results to a database for future comparisons and analytics then send the results back to the user.

Summary

Overall this has been an engaging project. I have learnt even more ways to build an appealing application. However due to how the application was built using web scrapers I was unable to continue once RoyalMail made a drastic change to their website. The plan was to replace my web scraper with their legitimate API but I was unable to get access. But lucky I have built it in a way I could integrate a legitimate API when one becomes available in the future.

Student exam countdown timer

During my final year of university, I collaborated with a with a friend to create a tool that would help students to keep track of their exam dates. During this project, the goal was to create an easy to use and stylish application that would use Google’s Material design and AngularJS to create an engaging user experience.

For this project, I was responsible for creating the front end which used AngularJS and Google’s Material Design and my friend was responsible for creating the rest API using a PHP framework called Laravel.

Demo

This project had to halt due to other commitment we had during our final year, but you can see a demo below of the rudimentary version 😁
Try it here

MEAN Forum (Final Year Project)

For my final year project, I built a web forum template using stack called the “MEAN Stack”. MEAN is an acronym for the software used to create the stack which is MongoDB, Express.js, Angular and Node.js.

For my project, I wanted to build a template that would replace existing forum templates like PHP BB and would introduce new design styles like Google’s material design and would be easy to administrate.

List of features

Dashboards

All users have a personalised dashboard where they can view information that is relevant to them and new and trending posts.
Admins have an specialised view where that can everything users can view plus additional widget that will enable them to monitor the ongoings of the site.

Mobile Support

The mean forum is responsive and can be used on various devices at different resolutions.

Users are able to search through posts and apply filters to refine their searches. Search are displayed using continuous loading to minimise the initial load and pull results from the server as the end user scrolls down the page.

Administration

Making administration easier was an important goal when designing the MEAN forum. To become an admin user will need the Admin role to be able to view admin features.
Admins are able to monitor site activity on their dashboard. They are able to view reported comments by users and comments that are detected as spam a using a machine learning algorithm.

Technology used

The forum used REST API to communicate with the Server. This provides quicker loading by creating a smaller payload and minimises page loading by reducing the processing required on the initial load.

Machine learning has been used in the mean forum to detect spam messages and flags them to the administrator. For this feature, I have used the Machine learning algorithm Bayes theorem machine learning algorithm to actively learn when user mark comments as spam

Angular UI Router has been used to make the forum feel more like a native application. The main benefit using UI router is faster loading because fewer resources are loaded.

Try it for yourself

Here is a link to the MEAN forum. In order to get started, you’ll need to create a new user on

Try it

Using HotUKDeals and Walmart API

I made this project for an interview stage at a company I was applying for. The requirement was to demonstrate knowledge of and show understanding of using web technologies by displaying data from APIs on to a web page. The main API they provided us with was the API for HotUKDeals. I just had to display the trending results for the current day.

To create this I used AngularJS and Twitter Bootstrap to display the results. To provide some flair I used ng-animate.

For a bonus, they gave the challenge of using the HotUKDeals trending results for that day and compare the price to another merchant. For this, I decided to use Walmarts API.

The requirement for the second task was very vague, so I decided to think out of the box and try to dazzle them. The final product was a small web application that was inspired by the mobile app Tinder. Similar to Tinder I displayed information in simple and digestible cards. To achieve this, I used ng-animate to perform the swipe animation and google material design’s card to provide the look and feel.

Try it here

Demo

Creating a blog 2.0

During my time at University, I decided I wanted some sort of web presence and decided to purchase my first domain.

After months of not knowing what to do with it, I decided to pay for hosting and get something on it. For hosting, I decided that Digital Ocean was best for me.
After configuring the server I started a plan of web technologies I would use to create the blog and what it should look like.

I have used blogs like Wordpress and I felt like as a developer does everything for you already for you. If I ever needed anything it was always on the store. So I decided to create one from scratch using the MEAN stack. I have previously used the MEAN stack in my final year project Mean forum. The design of the blog I decided to use Material Design because I feel it help to create a better reading experience and make the blog feet a bit like a mobile application.

To make my blog feel even more like a mobile application I an UI router resource used to load HTML dynamically. For example, dynamically changing a single HTML snippet when a link is pressed. This can be very useful and make the website loading feel reduced because just like an app most of the resources have already been loaded. I use UI router thought out my blog when an article is clicked on it would dynamically change the page to the end user can instantly view the article.

When styling my website I decided to use Google material design’s cards. Cards are used to add a clear distinction between web components and make the website look more appealing by using a small drop shadow. I also designed the images around the blog to have a faded and blurred image in the background. I have always like this technique to remove unwanted white on a website.

Below are some screenshot and a link to view the end product.

Disclaimer: I am not a designer.

view

My first android app: Android calculator

I have always been interested in using android applications and thought it would be a good opportunity to build my first application. I decided that my project should be thrilling, exciting and original so I decided to build a calculator. This would be the first time using IntelliJ’s Android studio. I chose to make a simple calculator that would have traditional features like addition, subtraction and multiplication. I felt like this would be a good challenge in order to learn one of the basics when developing android apps.

Overall doing this mini-project has been great fun even though i didn’t complete it (it got pretty repetetive). I have learnt how to use and create activities and create buttons and place them in various way on a device and assigning them but listeners. I have also learnt about some of the new features in Intellij’s adaptation of android studio. I have previously used Intellij software before but android studio had even more to offer.

Creating a blog

During my first year at university, I was tasked to create a blog. This was one of my first programming projects using web technologies. The task was entry level and was used to help us get used to using PHP, HTML, JavaScript and CSS with a MySQL database.

The main features for the blog were logging in, handling user sessions, storing user information and displaying the blog content. To run the database and PHP server we used phpMyAdmin.

Overall it was a great introduction into using basic web technologies and was a great challenge because we weren’t using frameworks to perform this task and had to create almost everything from scratch.