EPFL’s Pocket Campus Your Personal Buddy
Réalisé dans le cadre du cours de Projet de Dévelopement Logiciel donné par le Professseur George Candea, l’application Pocket Campus était initialement destinée à simplifier la vie des étudiants à l’EPFL. Au programme, un plan complet du campus permettant de trouver non seulement où vous êtes mais aussi où sont vos amis, un système d’optimisation de votre emploi du temps vous conseillant quels cours choisir, des recommandations sur les meilleurs menus du jour ... Le succès rencontré a motivé ses concepteurs à pousser le concept plus loin en créant, dans le cadre de leurs projets de semestre, une plate-forme mobile mise à la disposition d’autres écoles.
Let’s make life on-campus easier and more fun, is the motto behind the Pocket Campus project, which is developing an electronic buddy that you can carry in your pocket. This smartphone application tells you where on campus you and your friends are, shows you the way to any destination, helps you find the best place to eat, helps you manage your metro travel, choose and manage your course schedule, and much more. Currently in beta release, the initial success of the application motivated its creators to extend Pocket Campus to other university campuses as well, with a target release date of early Summer 2011.
The Pocket Buddy was developed as a project in the new Software Development Project course in the School of Computer & Communication Sciences. Offered for the first time in Fall 2010, this course was borne from Prof. George Candea’s wish to both expose undergraduate students to real-world software development and to promote entrepreneurship among the undergraduate student body. Educated at Stanford and MIT, Prof. Candea is himself a successful Silicon Valley entrepreneur with many years of industrial software development experience, and he is keen on exposing his students to the exciting world of software startups.
Students taking the Software Development Project course - SDP for short - were immersed from day one in a simulated startup company. The students chose as the object of their business a smartphone application targeted at the needs of people working and living on campus. As EPFL is growing bigger and increasingly more multi-cultural, having such a campus buddy to carry in their pockets could make life on campus easier and more fun. The 22 students taking SDP operated throughout the semester as a cross-functional team, thus experiencing not only the richness of real-world software development, but also getting a glimpse of how a real business operates.
Identify the needs of the market
For the startup to be successful, the first step required clearly identifying the needs of the market. Each one of the 22 students interviewed members of the EPFL campus to identify what they would want from such a pocket buddy. Almost two hundred persons were surveyed as part of this market study, and the features requested by the prospective customers were ranked according to their popularity. The team then identified its own core competencies, potential competitors, and the expected evolution of the smartphone market as a whole. This analysis led the team, for example, to reject the implementation of some popular features, such as voice over IP, because there appeared to be no competitive defenses (e.g., one could easily use Skype as a substitute product). The final list of features consisted of five items : Course Planner, Navigation, Food Services, Friends Finder, and Public Transport. No available application could provide these five services in one package - Pocket Campus had found its market niche.
A key insight behind choosing a smartphone application for these services (instead of, for example, just providing a web site) is that no other piece of technology is as widely spread as the smartphone today : every single member of the campus community is guaranteed to carry a phone in their pocket. Even though EPFL’s infrastructure was not 100% ready to provide all the services the team wanted to give their users, the application set out to compensate by using community-provided services, in which users collaborate to provide each other the information they require, such as the quality of meals, the length of the wait queue at a cafeteria, the number of sandwiches available on the shelf, etc.
Observing that the fastest growing smartphone platform was (and still is) Android, the team decided to build the application on Android. Not only would this make the product available to many users, but the students’ experience building an Android application would serve them well in the job market.
The Swiss Army Knife of the Campus
Pocket Campus provides five core features : Course Planner, Navigation, Food Services, Friends Finder, and Public Transport, all available in English, French, German, and Spanish.
When choosing courses for an upcoming semester, Bachelor and Master students have to make complex trade-offs between subjects that look most interesting, the number of credits they have to take in each branch, and the unavoidable overlaps in these courses’ schedules. To help its users with this task, Pocket Campus provides a timetable optimizer based on data taken directly from the course catalog : given a list of one’s favorite courses together with other criteria, such as how much time one wants to spend on campus every day, preferences for staying at home on a particular day, or avoidance of a dreaded subject, Pocket Campus computes the perfect selection. « Of course this is a choice you have to make only once a semester », says Christophe, who spent a lot of time interfacing Pocket Campus with IS Academia. « But on these specific occasions, this application is a real time-saver ». The Pocket Campus also offers a daily schedule and other related features a typical student needs every day.
Where is the ME H0 525 lab ? Anyone who visited EPFL knows how difficult it is to find rooms that have no apparent logic behind their naming scheme. Even for students who have been around for years, finding an exam room can be a real challenge. Pocket Campus lets you take the whole campus map in your pocket : you can browse a detailed plan of every level in a building, search for a particular place, and ask for the quickest route from any point (including your current location) to any other. Since the GPS signal is poor indoors, Pocket Campus features a custom hybrid positioning system that uses WiFi access points to accurately determine your present position even in basements.
What’s for lunch today at Parmentier ? Is it any good ? Pocket Campus’s recommendation engine can suggest the best meals available at on-campus restaurants, based on your personal tastes and the meal ratings provided by other Pocket Campus users. If you would rather decide on your own, then the application allows you to browse through the entire list of meals, along with photos of the meals taken by other users. And, if you are in a rush and do not want to spend half an hour waiting in line at Corbusier, you can take a look at how long the queue currently is : users report on queue statistics and thus help others make more informed decisions. If you’re not familiar with the campus yet, Pocket Campus Navigation will take you there at the click of a button. And if you want to know if your diet is balanced, Pocket Campus provides you with personal statistics about the meals you have eaten and the restaurants you most frequently go to.
Peter, I see you’re in BC. Do you want to grab lunch ? The Friend Finder feature allows you to see in real-time where your friends are. Pocket Campus set up its own social network, so that you can control who has access to your information, and who can know where you are. Pocket Campus also helps in forming and meeting teams, for instance to work on class projects.
How long until the next metro ? Given where I am now, will I catch it ? Good timing is important when using public transportation. Looking up timetables before packing your things is tedious, and estimating the distance from your present location is prone to mistakes, but Pocket Campus can tells you exactly how much time you have left before you should leave your present location. Unlike other public transportation applications, Pocket Campus estimates when you should leave based on your current position, the path you have to take to get to your stop, and real-time information about the bus or metro’s position, not only based on the timetable - no use to run if the metro is 3 minutes late. The application leverages GPS and WiFi positioning information to provide a highly accurate service. Furthermore, not only does it help you figure out when you need to leave to catch the next metro to Renens or to Flon, but it also helps you plan trips throughout Switzerland and the rest of Europe.
« Not only does Pocket Campus offer all these great features, but it does so in four different languages. This makes it easy for members of EPFL’s international campus to use Pocket Campus », says Andy, one of the student developers and also an exchange student from Austria.
Real-World Software Development
Pocket Campus is the result of 22 students and a dedicated course staff working together for 13 weeks. This time includes performing the market survey, establishing the final list of features, coding and debugging the application, as well as preparing for the final Pocket Campus demo and release event.
Managing schedules and features was a constant struggle, just as it is in real software companies. Pocket Campus used an agile software development methodology, in order to mitigate the large size of the team, the relative lack of experience with Android and software development in general, as well to be on bleeding edge of technology. This methodology relies on defining a set of features to implement, then taking features from this set and implementing them during a rigidly delimited period of two weeks, called a sprint. Code writing, testing, and debugging the application required four sprints, each lasting two weeks. A final one-week sprint was used to prepare for the final demo and release.
The agile methodology exposed students to aspects of software development they had never seen before. The size of the team and code base impressed students. « Working in such a large team was very very different from anything we’ve ever done at EPFL ! » says Loïc. Unlike regular course projects, here no single student knew the code in its entirety, so we learned how important it is to have clear interfaces and good, frequent communication between developers. Students were exposed to multiple parts of the application through frequent shuffling of responsibilities.
For the first sprints, the focus was on designing Pocket Campus and implementing the required multi-tiered infrastructure. Functionality was split between a two-way redundant fault-tolerant back-end server and the Android-based client application. Students designed a custom communication protocol between the smartphones and the server, and abstracted away much of Android-specific functionality required by the application into a compatibility layer, so as to make sure the application can be easily ported. Following the initial sprints, there was a working prototype of Pocket Campus, albeit with limited functionality. Latter sprints focused on adding new features to the prototype and making the application more robust. Doing so required developers to interact with all layers of Pocket Campus, exposing them to vast amounts of code written by other teammates.
Prof. Candea obtained from Google a generous donation of two different generations of Android phones, the Nexus One and the HTC Hero. This allowed the SDP students to have their own smartphones and test the application for real. This gave students many reality wake-up calls, because laboratory conditions and simulators are very different from the real world. For example, when Tarek - in charge of building an accurate indoor positioning service - tested the Pocket Campus on one of the real phones while walking around, he observed that the application invariably crashed. This never happened in the Android simulator. As it turned out, the reason was that when the phone changed WiFi access points, the application briefly lost connectivity to the server - an Android bug that is well known, yet tricky to avoid.
Students also discovered the need for having a testing server that is separate from the production server. Deploying new versions of the server software frequently lead to instabilities that hindered the rest of the team, until the dual development/production server was put in place.
Pocket Campus strives to become a real-world product and, correspondingly, the team organized a launch event at the end of the Fall semester 2010. After careful preparation, several practice runs (including a demo at MobileMonday in Zürich, where the attendees wanted to know when Pocket Campus will become available at ETH Zürich as well), the beta release event took place on December 20, 2010. The event was attended by more than 50 people, including CEOs of local startups, venture capitalists, developers from Google Zurich, many academic guests including the chefs de section d^informatique et systèmes de communication. The entire proceedings were recorded, and the video can be seen online. The beta version of Pocket Campus can be downloaded from pocketcampus.net.
The Future of Pocket Campus
After such a thrilling ride, several SDP students decided to keep the project alive and expand it. Along previous Pocket Campus developers, new ones joined in. In total, eleven students are now dedicating their semester project, Master project, and even their Master thesis to taking Pocket Campus to the next level.
The goal of the new team is ambitious : make Pocket Campus available to any university, not just EPFL. The team is now building a Pocket Campus platform, which will enable other universities to benefit from such a powerful application as well. Of course, this requires substantial redesign, in particular of the features that are tied to EPFL-specific information, such as restaurant menus or the WiFi-based indoor positioning.
The team is also expanding the social networking features. The fact that every person carries a smartphone in their pocket got the team thinking : What if your phone could inform you that the person next to you in line is working on a topic close to your interests, and you could start a conversation ? What if you could easily report an incident directly to the relevant emergency services, without having to explain where you are and what is happening ? This is part of the vision of the new Pocket Campus team.
The first version of Pocket Campus was developed by (in alphabetical order) students Alexandre Sarfati, Andreas Kirchner, Benyounes Moumni, Céline Heldner, Christophe Zurn, Claude Bossy, Elodie Nilane, Florian Laurent, Gianluca Dalmas, Guillaume Ulrich, Jeremiah Menétrey, Jonathan Baeriswyl, Loïc Gardiol, Nicolas Sanglard, Nicolas Tran, Oriane Rodriguez, Romain Poiffaut, Romain Testuz, Tarek Benoudina, Thomas Droxler, Yannick Tapparel, Yunpeng Zhou, and the SDP staff.
Cherchez ...- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé
Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.
ResponsabilitéLes articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.
Archives sur clé USBLe Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.
Taguage des articlesDepuis 2010, pour aider le lecteur, les articles sont taggués:
- tout public
que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
- public averti
l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.