COMS 6181 Projects
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).
All project reports must use the standard IEEE
template, using either Microsoft Word or LaTeX. The report should be submitted
as a PDF file.
Teams need to submit a project plan.
- Audio data
- Use a speaker and microphone to transmit data, e.g., to authenticate
users, similar to a modem. As a variation and if you are musically
inclined, consider whether you can use cords to convey information,
i.e., a (short) data stream is turned into a melody. The goal is to
transmit approximately 50-100 bytes in a few seconds.
- 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:
- 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
- SIP UAC: A normal SIP client that talks to Bleep core via local
sockets.
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.