Friday, 20 June 2014

cristianfrincu.com

  Site not currently accessible :(
NoIP changed their services and I am no longer able to obtain a static IP for free.
I will have to find another host/alternative but the features of the site might have to change 


 I have decided to create my personal website which I also figure would be interesting to host myself. I
have decided to combine my previous project, the personal cloud storage and also create my personal website. 
   This experience was very enlightening because it has given me a perspective of developing tools that will be used by the masses instead of just myself. I was forced to create a certain level of graphical interface and user friendliness which I might have looked over if I was programming for my own use.
The website is very interactive and it can be used on both mobile and desktop, from the browsers I have tested it is very compatible.
   I have decided to host the website on my Raspberry Pi, due to its low cost, and high flexibility. For the traffic I will be getting, it should be able to hold up pretty well. I used Apache as a server, and I have included modules such as PHP and MySQL. It is running a Debian version of Linux, this makes it easy to get the packages and resources I would need. Even will all those resources, setting up the server was a challenging task, I was running into a lot of problems with the execution of PHP code and I had to dig though the 5th or 10th page of Google to find the answer to my questions. All the work has been done though the command line, as I do not have a monitor for the server and I don't think the Pi has enough power to run a website and a graphical interface at the same time. Plus, I became really efficient with the command line, and now I find graphical interfaces to be lacking a lot of features.
 Since I own the server, I have the power to access resources and information I wouldn't otherwise be able to. Such as:
  I am able to see the temperature of the core and the usage of the CPU. I also have an interactive (thank you JavaScript) monitor to show me how much it costs to keep the server running, in total (less than a dollar so far :) ). With that information I have used a python script to send the temperature of the CPU to ThingSpeak.com and I created an interactive plot (updates every 10 minutes), which refreshes without the page needing to reload.

I have used PHP to give you the date and a random quote each time the page is reloaded. I figured I could use some inspiration each day.

Another feature that I am very proud of, is the "contact us" form. Not only does it look awesome, but I have also set it up so I get notifications for the message. This is an example:
And then, by using the Pushover service:
I get a notification on my cellphone!
The request is done though a python script. I also get notifications for things like temperature warnings, if the CPU is getting to hot.

   This concludes most of the public features. I also have a private section which is a bit more fascinating and a lot more useful. By clicking the "Private" from the top selection bar, you are presented with a login screen, this is so it makes it possible to interact with the personal cloud service that I have previously built. You are able to keep the java program running on your computer so it checks for any file updates, and then the web interface is able to show you what files you have in the folder! From there you can get some information about the size of the file and when it was added. You have capabilities like add a file or delete a file. All this has been done though PHP and Javascript. AJAX has been used to coordinate the events of deleting and updating what files the user sees. 

This concludes the bulk of features I have developed. I have struggled a lot with the development of this website because I was not familiar with the building of websites or any of the web development languages. 
I have learned a lot, everything from setting up a web-server, to design and interaction between the different programming languages. It was a great experience and I have developed a product that will help me from now on.

Some cloud hosting services will be available by request, for debugging and to test the robustness of the service! Inquire about them thought the contact form at cristianfrincu.com

No comments:

Post a Comment