COMS 6181 Projects

All projects should consist of teams of three students. The topics below are suggestions; I'd be happy to discuss other suitable topics that match one or more themes of the class.

Projects can be implemented on PCs, MacOS or a mobile OS (IOS, Android).

Teams need to submit a project plan.

Contextual security
Build a simple Android or IOS app that reports back the user's location to an authentication system, either PAM (for Linux login) or a web authentication framework (such as PEAR Auth for PHP). If the user location agrees with the location estimated by IP address of the login request, use the normal login process. If not, add Google Authenticator or another two-factor method (e.g., FIDO U2F) to the authentication process. Consider other authentication factors, such as web browser and time-of-day patterns.
Performance monitor
Monitor application performance and detect whether there are network-related impairments, such as excessive retransmissions, delay or packet loss. Try to discover the bottleneck (Wi-Fi, home access network, network peering point.)
Network traffic monitor
It is often difficult for home or small enterprise users to tell who is using the network for what, and who or which application may be contributing to network congestion. Develop a set of measurement tools that characterize local network performance and export the results to a web page. Consider using OpenWRT and address some of the shortcomings of common tools.
Build Command Line IM client for BitTorrent Bleep
Bleep is BitTorrent's new messaging app that uses SIP over P2P to enable users to send/receive sync/async messages and make voice calls privately with no central repository of metadata. Bleep consists of two major components:
  1. Bleep core: A distributed SIP server that runs on each node. It behaves like a normal SIP server that listens on the localhost and responds to SIP messages. You can find more information on how Bleep core works here
  2. SIP UAC: A normal SIP client that talks to Bleep core via local sockets.
  3. For more information on how the software is architected.

    The alpha version of Bleep is already released for Mac, Windows and Android and the iOS version is in the works but there is no Linux client. The goal of this project is to create a simple command line interface (SIP UAC) that talks to the Bleep core (will be provided by BitTorrent Inc.) to enable sending and receiving messages to a single Bleep contact whose public key is known. [This project is informally co-sponsored by BitTorrent.]

Automated network security protection
Design a system that protects servers against data exfiltration and unwanted incoming connections, by characterizing broadly the legitimate set of protocols and connections by time, geography or protocol, and creates ipfilter rules automatically. (Little Snitch is a related example for desktop systems).
Characterizing CDNs
Characterize popular content distribution networks (CDNs) for services such as Apple, Netflix or YouTube. Where are the servers located? Is there a pattern to how servers are chosen? Develop tools that allow to gather information about network paths and selection stability.
Using BitCoin blockchains for non-monetary purposes
Explore how to store and retrieve non-monetary content in (BitCoin) block chains, e.g., to distribute public keys or to prove first-to-invent claims. Characterize the computational costs, network bandwidth and latency.
Indoor location accuracy measurements
While locating people and devices outdoors has become easier with the widespread availability of cheap GPS (and other satellite navigation systems), it is still difficult to find people indoors, e.g., when they place a 911 emergency call and cannot identify where they are. Combining multiple location technologies, such as Wi-Fi, BlueTooth beacons ("iBeacon", BLE), barometers, magnetic sensors and inertial measurement units can help identify the caller's office or apartment. Measure (A set of Estimote BLE beacons are available for experimentation.)
iPhone/Android rich presence
Using the iPhone, Android or other smartphone platforms, build a system that reports the value of its sensors, including local time, geospatial location, acceleration, speed, light level, sound level and user activity, via "rich presence". Build a web interface for a SIMPLE rich presence server. Try to detect common activities, such as walking, by the output of the accelerometer.
Home intercom
Build a home intercom using standard protocols. The intercom should have no central server, and work by push-to-talk and multicast.
What kind of Internet am I on?
Many parts of the Internet, whether in homes or hotels, businesses or buses, are no longer transparent and only offer a limited subset of capabilities, from delivering unicast packets only to restricting the ports that applications are allowed to use. A draft prepared for Internet2 describes some of the distinctions. Include the detection of IPv6 capabilities. For example, extending our DYSWIS tool (written in Java), the project should implement an easy-to-use tool, using Java or Flash, that detects the capabilities of the current Internet connection.
Automatic speaker recognition
During phone conferences, it is often difficult to tell who is speaking, particularly if the group meets only infrequently. Using existing speaker recognition technology, build a tool that, given a list of names and speech samples, tries to determine the most likely speaker, sending the name by IM to the participants and/or displaying it on a web page.
WebRTC conferencing
Using WebRTC, Ajax and similar technologies, create a simple web conferencing application that allows a group to collaborate by text chat, file exchange, floor control and voting.
Echo detection for VoIP
Detect whether a voice channel has echo, so that a network management application can monitor the quality of a call or conference.
Location privacy
Consider how to improve location privacy for users, e.g., in Google Latitude. Consider location fences, Facebook groups and similar mechanisms.
Acoustic user location
Using two or more microphones, determine the approximate location of a speaker in a room. (You may need to acquire additional hardware for this project; please discuss possibilities with the instructor.)
Proximity-aware devices
Discover other devices within close geographic proximity, if they match the same interests or group. Example uses: games or collaboration (e.g., in a classroom, at home or conference).
Location-based information
Build a web or smartphone application that uses location-based services (JavaScript or smartphone APIs) to allow users or owners to annotate locations on a map with text, photos or audio narration. This could be used, for example, for building guided tours for nature areas or parks.
Multiple interfaces
Accelerate downloads by using both wired and wireless (802.11) interfaces, or both cellular data and 802.11. Consider mTCP and SCTP, as well as application-layer options.