Project Ideas
Below are a selection of ideas I’ve had for my final year project. I’m unsure if any of the ideas are: a) feasible b) worthwhile c) too complex d) just stupid, and so would welcome any feedback or criticism.
My general interests are as follows:
- Electronics and hardware development: specifically ‘hacking’ devices such as the WRT54GL and coding small systems using the Arduino.
- Information Security: specifically encryption and OTP systems.
- Network security: intelligent network monitoring, intrusion detection systems, reactive network security.
- Web Design: the use of technologies such as AJAX to allow for a more fluid and seamless end-user experience.
- Virtualization: I am officially a VMware fanboy, and remain convinced they have divine knowledge from a higher being.
1. Small scale computing
tl;dr: Develop a scalable system using small-scale computers
I’ve started to take a big interest in small scale electronic projects based around the Arduino platform. Specifically, how this sort of micro-computer can be be put to work in the physical realm. I’ve had several ideas for projects based on the Arduino:
i. Following a recent hospital visit, I noticed how the nurses have to visit each patient at least twice a day to record their temperature, heart rate, and blood pressure. My idea would be to have an Arduino embedded in a wrist strap, which actively monitors a patients heart rate and temperature, and transmits the data wirelessly back to the nurses station. The nurse is then able to view each patients statistics as and when is convenient, and can set alerts when certain thresholds have been exceeded. The hardware for this project is readily available at no great cost.
ii. Remote monitoring system. Similar sort of system, but the Arduino is packaged in such a fashion that it can be placed in strategic places around the home/business. The consumer can choose from a range of options to suit each station, for example, they can have an IR sensor that detects body heat, an audio sensor for detecting the sound of breaking windows, a small camera for CCTV, a tilt switch for detecting movement, a magnetic switch that detects when a door has been opened etc.
Again, all the hardware is readily available and relatively inexpensive. Like the health care project, each remote station talks with a base station wirelessly, which is in turn connected to the Internet. Upon a sensor being tripped, alerts can be sent via e-mail, SMS etc, and indeed provide live feeds from audio/CCTV stations.
2. Space in full colour.
tl;dr: Develop a system that records details of a weather balloons ascent into near-space.
Inspired by this project created by a small team of MIT students, I would like to carry out a similar experiment/project that would see me launching a balloon into near-space. A student who I am in contact with has also worked on similar projects and he has paid particular attention to the development of a flight computer which records valuable meteorogical data and reports it back to base. I’m a keen advocate of Linux and OSS in general, and would love to develop a flight computer that records its ascent into space. Just think, SHU would have their very own photo of space (okay, near-space) to hang on the wall of the atrium
Each of the two projects mentioned had problems with communication once the balloon reached a certain altitude. I would love to research and/or develop a more reliable method of communication that allows networking between the balloon and the ground.
3. Network Monitoring.
tl;dr: Develop a system that allows error logs to be centrally managed via a web-interface.
I work for a small company who specialises in developing reliable small networks for SMEs. However, no matter how reliable, there will always be error logs. Over the course of a month some of our more active servers generate upwards of 500,000 events. I would like to work on a project that uses a blend of WMI, SMNP and Syslogd to allow central management and parsing of error logs from our host of servers.
Ideally it would allow: filtering of events based on EventID or panic message, filtering of events based on persistence/transience (i.e. a lot of errors occur over the course of an hour, and then ‘fix themselves’. Time wasted on investigating the cause or source of these errors is costly, and so if the system could have a modicum of intelligence and learn which errors are ‘serious’, it would be valuable. Of course, there are lots of test-cases, for example ensuring that such a system does not filter out errors that fix themselves after an hour, but re-occur every day or every week etc).
There are many angles of attack for this problem/project: I could develop a system such as Zenoss further to make the inclusion of error log checking much easier to manage/configure; alternatively I could develop my own web based front end whereby the user can manage filtering etc.
4. Intrusion detection
tl;dr: Develop a system for the detection of intruders on small networks.
Develop an efficient and comprehensive ‘honeypot’ system for use by SMEs. Placed in between a customers Internet and firewall, and also have a physical link to the local network. This system would use existing systems such as honeyd and concentrates on developing a ‘user-friendly’ web based front end whereby a non-technical user can quickly see if suspicious activity has been detected within their network, particular attention will be paid to the removal/filtering of false-positives.
5. Virtualization
tl;dr: Report on various issues surrounding the increased uptake of virtualization.
i. A report on virtualization and it’s increased usage within SMEs. Do the benefits it brings really outweigh the performance costs when used on commodity hardware?
ii. A report on the increased usage of ‘the cloud’, and what it means to SMEs.
iii. Does the advent of virtualization mean that we will see a return of thin clients to corporate environments? A la VMware View. Do technologies such as VMware View have a place within SMEs? Potentially they allow a small-to-medium organization to manage their perpetual upgrade cycle more easily. When performance becomes a problem, or the workforce grows in numbers, is it simply just a case of installing a new server and seamlessly migrating VMs as can already be done with VMotion?
iv. A report on the performance impacts of virtualization. I have struggled to find any real world analysis of what performance impacts are caused by the use of virtualization. The report would define a clear set of tests, and run them side to side on VMs and traditional physical servers.
6. Backups
tl;dr: Develop an OpenSource backup system.
i. I have been developing a backup package for my own use at home that uses a mixture of BASH, Python and YAML that encrypts a copy of my ‘important areas’ and commits them to tape. I would like to develop this further and make it more customisable, hopefully getting it to a stage whereby it can be released as a Debian package.
ii. I have found whilst working for my current employer that perhaps the biggest reason for employing virtualisation is the completeness of backups. If a server fails, we can have the VM back up and running on another server typically within an hour. The restored image may be 24 hours old, but I have found what the customer cares more about is the efficiency of a restore; they aren’t concerned with the fact that they may have lost data entered over the past day, that loss can be recouped within a short amount of time. However, they are concerned with just how quickly they can get back to work.
My idea would be to develop a Linux based system, that remotely triggers the restart of workstations, boots the workstations via PXE and takes a full disk image of the workstation, and then reboots back into Windows. If a workstation should fail, the image can quickly be restored to standby hardware. The falling cost of storage makes this all the more applicable to SMEs.
7. eReceipts
tl;dr: Develop a system for collecting, storing, and making available consumer receipts.
This is an idea that has held my interest for a long time – electronic receipts. When a customer makes a purchase in any store, they ask for their eReceipts dongle/barcode/whatever to be swiped, and that receipt is then stored online in a central repository. When the customer gets home, they can view every receipt for any purchase, print it off, and request a refund if necessary.
I have done quite significant research into this idea, and one of the most startling questions is “why hasn’t this been done yet?”. A body of corporations that included the likes of Microsoft, IBM, and NCR announced in 2001 that this project was underway, and eight years on eReceipts are still nowhere to be seen, with no further press releases from the body.
Obviously this finding raises questions in itself: why did a body of some of the worlds biggest corporations decide not to see the project into fruition? Indeed, why has Tesco not offered such a service? It is widely known that they keep record of customer purchases via the Club Card system and use it to target marketing more effectively etc.
Obviously the reason lies behind the economics of the project. Namely, why would a company want to offer a service that would see an increased rate of returns? And what would be the cost of modifying EPOS systems and indeed the back-end systems of large retailers to implement such a system? But surely the hundreds of eTailers manage to cope with this problem, as their consumer base can view a complete transaction history and request RMAs at will.
Regardless of the reason, I can’t help but feel that in 10 years time eReceipts, in one guise or another, will be in use the world over. My project would develop a system for capturing receipts and making them viewable by consumers via a web-based front-end. Particular attention would be paid to developing a multi-platform API that EPOS developers could integrate into existing systems.
8. VPN
tl;dr: Develop an easy-to-use VPN solution for SMEs/home users.
Develop a OpenVPN system for home users. Inspired by the need of my dad to check/send e-mails and work at his home computer whilst abroad, develop a simple device based on the ‘ultra-hackable’ and inexpensive Linksys WRT54GL that a relatively non-technical end user can configure to access their home/work network securely from remote locations.
9. ‘Green’ monitoring
tl;dr: Develop a system for the long-term monitoring for energy usage within the home.
Inspired by the systems detailed in this thread, in particular this post, develop a system using commercially available hardware that allows a home owner to view graphs and usage statistics of their energy use over varying timescales. Again, the web server/processing system for the data gathered by the hardware could be run by a device such as the WRT54GL.
Project would focus on developing the system used to gather data, and the web-accessible front end.
10. ‘OneClick’ Support
tl;dr: Develop a system to facilitate ‘on-demand’ support for a user base.
This project would focus on the development of a system that extends the ‘traditional’ web-based help desk. Using SHU as an example, a small application would be installed on every workstation, that places an icon in the systray. When a user experiences a problem, they click on the icon to request remote support from a help desk technician. The application utilises the same DLLs used in Microsoft’s Remote Assistance application, and connects the technician directly to the users workstation. The technician can then chat with the user via text on screen, and take control of their desktop and hopefully resolve the problem.
The idea can then be taken further if needs be, and a queuing system could be devised whereby when the user clicks the ‘OneClick’ support icon, their request is lodged in a help desk system that is managed by the technicians. Whilst the user is waiting for assistance, they are able to provide details that will help ensure that the most capable technician takes control of the support ticket.