Computer Science

Senior Design Center

Projects – Spring 2014

Click on a project to read its description.

A number of Business System applications will be converting from HP Unix (HP-UX) to Linux. Although the platforms are similar, some differences will have to be accounted for in the transition.

The project team will create a tool to evaluate HP-UX files to identify changes that will have to be made when converting to Linux. The tool should first provide an option to identify and summarize the changes. The tool should also provide an option to modify the files by applying the necessary changes.

The project will involve the following:

  • Analysis Phase
    • A list of HP-UX commands will be provided by Boeing. The student team should evaluate the HP-Unix commands and determine the Linux equivalent and determine if the output of the command will differ between the platforms. Examples:
      • To trace system calls, the HP-UX command is tusc and the equivalent Linux command is strace. Some other examples of HP-UX commands that will be included in the list provided are – scp, wait, sleep, glance, gpm, bdf.
      • Both HP-UX and Linux support the PS command to view Process Status and accept a number of parameters. But is the format of the output equal, or will we have to adjust for differences?
  • Development Phase
    • A script program will need to be developed and should include the following:
      • Read a file that has a list of HP-UX commands to search. The file will contain the HP-UX commands, the equivalent Linux command and, in some cases, an indicator that the format will be different in Linux. This file is what will be produced in the Analysis Phase.
      • Scan through a directory structure to search all files looking for the HP-UX commands.
      • Provide an option to run in two modes:
        • First Mode: Identify and report on which commands it found.
        • Second Mode: Identify and modify to the new Linux commands (and report on the changes).
      • When the program runs in the mode to modify the files, it should save a copy of the original file prior to converting.

iPhone Server Monitoring Application

Overview

Duke Energy has numerous systems that are critical to the company's operation and require 24/7 support. As a result, it's necessary for the support team to handle issues remotely, at a moment's notice. Often the server hosting the application contains clues to resolving the problem. The students will create an iPhone application that will be used to resolve support-related issues remotely. Functionality of the application will include the ability to start/stop Windows 2008 services; retrieve server specifications (such as disk space, memory, CPU, uptime, etc); and the ability to start/stop scheduled tasks. Students are encouraged to be creative in the design of the system and incorporate functionality that they believe to be helpful in debugging application issues. Additional challenges include:

  • Logging and reporting capability for auditing user activity
  • Interface the application with Linux/Unix servers
  • Compatible with iPads as well

Requirements

The application should be able to complete the tasks and provide the metrics below:

Tasks

  • Start\Stop\Disable Windows Services remotely
  • Start\Stop\Disable Windows Scheduled Tasks remotely
  • Retrieve running processes and provide the ability to end the process
  • Restart the server

Return the following Specifications and Metrics

  • Server Up Time
  • Date of last restart
  • Currently logged in users
  • Disk Space
  • Memory
  • Memory In Use
  • Memory Free

OS Event Retrieval (Selected by date and time)

  • Application
  • System
  • Security

In the event that the Unix or Linux operating systems are chosen, the students should investigate and determine similar tasks/metrics that would be helpful for application debugging.

The interface must also contain administrative functionality for adding/removing servers; selecting allowable actions per server; adding/removing users; and editing user rights. Security groups should be established as follows:

  1. Super User: has access to all application functionality, including the reporting and administrative consoles.
  2. Editor: Does not have access to the administrative or reporting consoles, but does have access to functionality that impacts the server environment (stop/start tasks, services, etc).
  3. Base user: No access to the administrative or reporting consoles, and cannot impact the server environments. Does have the ability to retrieve server information (OS Event Retrieval, Specifications and Metrics).

It's possible that security access may be dictated by the nature of iOS and iPhone applications themselves; if that's the case, work within that framework.

It is preferred that the servers within the application's control do not contain installed code. Rather, all requests to these servers should be accomplished via WMI (Windows Management Instrumentation), or the Linux/Unix equivalent.

User Audits

The application will provide reporting functionality for auditing user activity that impacts the server environment. Reports should include the action taken, date and time the action was executed, and the individual performing the action. Users should also be able to search for activity using these attributes as search criteria.

Documentation

Full documentation of the system is required. This includes:

  1. Source code documentation
  2. A User's Guide, in the form of a Word Document, fully describing the features of the system. This is to be a "how to" guide for the users.
  3. A Technical Guide, in the form of a Word Document, that describes the architecture and major components of the system from a technical standpoint. The intended audience will be software developers who will be providing support for the application in the future.

Player Portal

Background for Project

There are two major video game console player portals: Xbox Live and Playstation Network. Additionally, there are Independent Portals such as Steam and Virgin Gaming for PC gamers, and social media sites such as Facebook, YouTube, and twitter that all allow gamers to connect to other gamers.

What would be of great value is a multi-platform (web and mobile) portal that consolidates the player's profile and multi-player activity across all such sites.

Project Description

  1. Use I-Cubed's partner: Convertigo's open-source Enterprise Mashup and Mobile Development software to develop a rich composite application that pulls user information from each site
  2. Develop an interface that allows a user to quickly see their games played, game achievements (or equivalent), tournaments, and multi-player matches across platforms
  3. Dynamically apply links to related game content such as walkthroughs, match-making, and gameplay video
  4. Apply social media interactivity such as "Adding a Friend" across gaming platforms

Project Requirements

  1. Student team is permitted to work at I-Cubed's facility at 920 Main Campus Drive Suite 400, Raleigh, NC. 27606.
  2. Students may acquire Convertigo open-source software online (http://www.convertigo.com/en/itcenter.html).
  3. Users may use their own gamer profile information and/or I-Cubed can provide gamer profile information.
  4. Student team should conduct daily scrum and meet weekly with the I-Cubed Project Sponsor.
  5. The Gamer Player Portal should create a secure but also engaging user experience.

Delivery

This project should be created with an extensible framework that is quickly implementable as new player portal sites become available. Significant attention should be focused on user experience to improve the adoption and usability of the technology.

Sponsor Background

Since 1984, I-Cubed has provided the people, products and processes to extend the value of customer's enterprise systems. The company's subject matter expertise in Enterprise Applications, Product Lifecycle Management Consulting, Business Process Consulting and Rights Management provides a unique insight that translates customer needs into commercial products. I-Cubed's product and services portfolio helps customers accelerate the integration of enterprise systems and collaborate securely throughout the supply chain. I-Cubed has been sponsoring senior design projects for more than 10 years. I-Cubed's office is conveniently located on NC State's Centennial campus in Venture II.

Overview

The World Health Organization reports the world needs 7.2 million more health workers. This number includes doctors, nurses and mid-wives. If nothing is done by 2035, the number needed will jump to 12.9 million. This shortage of health workers is considered one of the fundamental constraints to achieving international health and development goals. Health workers are the backbone of any healthcare solution. People around the globe suffer from preventable disease and death simply because they do not have access to a trained health worker. Getting the right health worker in the right place at the right time is the key to preventing human health disasters. This was the motivation for IntraHealth International's leadership in developing the human resource information system called iHRIS. iHRIS is free and open source software for managing health workforce information and is currently employed in 16 countries around the world. With iHRIS, countries are saving lives by training and deploying health workers where they are needed most.

The Project

Without customization, however, iHRIS does not address all possible use cases in all countries. When iHRIS is deployed in a new country a great deal of form and page customization is necessary. To improve implementation speed and saturation in a country, students are tasked to build an administrative interface to allow customization of forms through the application instead of using module configuration files. Building on that, students will create an interface to define, display, and edit pages based on the existing forms so more customization work can be done through the application instead of manually editing XML configuration files. The student group will be required to engage with stakeholders in Africa at both the ministry level and the open source community. iHRIS is built on a LAMP stack (Linux, Apache, MySQL and PHP) with source code hosted in Launchpad.

Project Organization

The project will be run within the Agile Scrum framework. The iHRIS Community Manager will serve as the Product Owner for the Scrum team in order to provide form and page editor requirements and to assist with backlog grooming and acceptance criteria. Development will occur in three week Sprints. Planning for tasks will occur at the beginning of the Sprint, checkpoints and backlog grooming will be scheduled mid-Sprint and demonstrations of progress will happen at the end of each Sprint in a Sprint review.

Deliverables

  • All developed source code.
    • Documentation covering the implementation and use of the form and page editor.
    • A two minute YouTube instructional video on using the form and page editor.
    • A technical presentation covering the design and implementation of the modules.

Benefits to Students

  • Project exposes students to the latest technologies and standard profiles in global health informatics.
  • Students will experience first-hand the high social impact their work can make.
  • The project provides a rich multi-cultural experience, interacting with stakeholders in different time zones, countries, and cultures.

Exploration of Gadgets for Home Automation

Home automation is a term used to describe multiple things, from monitoring energy consumption to building the house of the future. In this project you will have the opportunity to obtain hands-on experience with home automation technologies.

Students working on this project will be given a set of programmable hardware devices based on Microsoft's .NET Micro Framework and Microsoft .NET Gadgeteer (http://www.netmf.com/gadgeteer/) including touch screens, an RFID reader, LED indicators, cameras, sensors and networking modules. These devices will be compatible with Microsoft's Lab of Things (LoT, http://www.lab-of-things.com) and HomeOS, which work together as a research platform for wired and wireless connected devices in homes.

A previous Senior Design team in the Fall has done preliminary work with most of these devices. The Fall team produced two major solutions: a smart security system and a smart picture frame. However, while both solutions use .NET Gadgeteer and the .NET Micro Framework, they are not integrated with LoT.

This semester's team will be provided with all existing source code and documentation from last semester. The goal of this project is to investigate how all the different devices can be integrated into a LoT solution. Any challenges and workarounds will need to be documented as they are encountered. Students are free to reuse any existing code, or can choose to start new software solutions from scratch. A hybrid approach is also acceptable. By the end of the semester the students are expected to develop a fully featured solution that showcases how each hardware module can interact with Lab of Things, and provide documentation for the entire process. Modules that turn out not to be compatible with Lab of Things should be identified and the reasons for the incompatibility should be documented.

It is suggested that the teams divide the work in 2 major phases:

Phase 1: Module interaction with Lab of Things

This phase involves getting familiar with the LoT platform and exploring how each module interacts with this platform. During this phase you will learn how to set up Lab of Things and HomeOS, how to use each module's API to interact with it from a .NET project, and how each module could interact with LoT. All your findings during this phase should be documented and reported.

The expected results of this phase are:

  • Interactive application(s) showcasing features of all the provided devices and how they interact with LoT.
  • Documentation describing not only how the applications were designed, implemented, and tested, but also all the implementation details you discovered and any issues found with the integration of the devices (and solutions to these issues, if possible).

Phase 2: Fully featured solution

All the dedication and effort you put into the first phase will surely pay off, because in this phase you will get the chance to apply what you have learned to create a solution of your choosing. During this part of the project you can use as many modules as you can to construct an integrated hardware and software solution inside Lab of Things. Be creative!

The expected results of this phase are:

  • Home automation solution interacting with Lab of Things and HomeOS.
  • Documentation describing not only how the system was designed, implemented, and tested, but also all the implementation details you discovered and any issues found with the integration of the devices (and solutions to these issues, if possible).

Break the Ice

Mining the social web to enrich human interactions

Description

"Break the Ice" will implement services and algorithms that will navigate an individual's social graph and extract highly relevant topics for conversations from the relationship.

As an example, consider John Doe. John is a lawyer, who has an account on Twitter. He follows many other users and is widely followed as well. He usually tweets on topics related to law and legal matters. John is looking to be of assistance as legal counsel for some of his followers – in other words, John is looking at Twitter as being a source of customers and revenue.

John sees a potential lead in Jack Sparrow and wants to reach out to Jack. "Break the Ice" comes into the picture here: "Break the Ice" looks at Jack's tweets, and figures out the categories (sports, entertainment, politics, etc.) that Jack frequently tweets. It further suggests relevant topics mined from popular news feeds, in those categories, that can enable John to have a richer conversation with Jack.

The social graph will extend across the popular social networks. For the context of this project let us limit interfaces to Facebook, Twitter, and Google+. "Break the Ice" will use public APIs that these networks provide to navigate and extract content from the graph, mine the content for categories, and further look at matching topics in popular news feeds (Twitter popular topics, BuzzFeed, Google news, NPR, etc.) via the public APIs they provide (rss/atom feeds, REST API, etc.).

"Break the Ice" will be implemented to be hosted in a standard application server and will expose its features as RESTful web services via JSON payloads.

Technologies

As a part of implementing this project, a few technologies will come into use. The following is a list of some potential (but not limited) technology choices.

  • Programming language and platform
    • Java/J2EE
    • Python
    • C# and .NET
  • Webserver
    • Tomcat or TomEE (enterprise edition)
    • ASP.NET 4.5
  • REST library
    • RESTeasy is a good Java library
    • ASP.NET 4.5 has great support for REST in .NET
  • Google, Twitter, Facebook APIs
    • The APIs are available for various programming languages
  • JSON serializer/deserializer
    • Java: Jackson is the best Java library
    • JSON.NET for C#/.NET
  • Database
    • NoSQL databases such as MongoDB
    • SQL database such as MySQL
  • IDE
    • Java: IntelliJ Community Edition or Eclipse
    • .NET: Visual Studio

Extraction of content and classification will involve aspects of machine learning.

There are a few libraries in Java that can be used for this purpose:

  • Apache Mahout: http://mahout.apache.org/
  • WEKA: http://www.cs.waikato.ac.nz/ml/weka/
  • Stanford NLP toolkit: http://nlp.stanford.edu/

Python has a number of immensely popular libraries such as NLTK: (http://nltk.org)

As a stretch goal, build a native app accessing data from the REST interface and rendering a UI for Android, iPhone, or Windows Phone. You may take advantage of frameworks similar to Xamarin (http://xamarin.com/), which would allow you to share common code across multiple mobile OS platforms.

Students will be required to sign over IP to LexisNexis at first sponsor meeting.

Business Link Express

Purpose: To develop a one-stop web portal that offers a central and easy access point to start a business in North Carolina.

Background: The State of North Carolina is working to make it easier for entrepreneurs to start their business in this state. Legal requirements for business startups span several agencies, including the Secretary of State's Office, the Department of Revenue, and the Department of Commerce. A website that integrates the process of starting a business with helpful information about the process and state resources will spur new economic development and reduce unemployment.

A cross-agency workgroup identified the business flow processes, forms, and technical requirements necessary to develop a one-stop access point for individuals interacting with the state around business issues. The workgroup developed personas, scenarios, and content wireframes. (Personas and wireframes for primary pages are available. Full content wireframes are also available.) These were evaluated by Ben Watson's graduate level User Experience class. The project report and prototype are here:

http://uxclass.csc.ncsu.edu/2013/12/project-improve-user-experience-on.html.

Project: A senior design project is requested to build Business Link Express using innovative practices for user experience, including programming the online forms, providing a data feed to facilitate back-end integration, and improving the usability and functionality of this online licensing database http://www.blnc.gov/start-your-business/business-licenses-permits. Usability testing is desired to ensure ease of use. A responsive design that works on desktop and mobile is desired. Use of the DotNetNuke web CMS platform will help the project to be quickly deployed by the state.

Online processes are [1] several online forms for business registration with the Secretary of State (the form differs depending on the business structure chosen), [2] licensing requirements database managed by the Department of Commerce (schema and test data will be made available), [3] an online form to obtain a privilege license with the Department of Revenue, and [4] registering to pay taxes with the Department of Revenue (process is already developed, and only needs to be included in a modal window).

Processes are fairly stable, but can change when state laws change. It is requested that the site be coded to respond easily to typical changes in the processes.

After the project is complete, the site will be hosted by the N.C. Department of Commerce and maintained in DotNetNuke.

Design elements such as colors, fonts, and an enterprise toolbar will be supplied. The state will try to provide a full DotNetNuke skin, but it may not be complete by the time it is needed.

Site should be:

  • Responsive, and built on the Bootstrap framework.
  • Lightweight and all code and images optimized.
  • Accessible per Section 508 of the Federal Rehabilitation Act (www.section508.gov/). Coded with ARIA roles.

Browsers supported:

  • IE: Optimized for IE8 and above.
  • Chrome, Safari, Firefox: Design should be coded for N-2 versions.

Code should:

  • Validate to published standards.
  • Be annotated to help other designers and developers who work on the project.

Anticipated Benefits:

  • Improve customer service and speed of transactions with state government
  • Improve competitiveness in potentially attracting new businesses to NC
  • Streamline processes and communication of information across agencies
  • Reduce state transaction costs for various business processes, such as filing licenses, taxes, general forms
  • Improve rate of compliance for all business processes (i.e. a higher number of individuals and/or businesses complete all the steps in the process of setting up a business: filing all necessary forms, securing necessary licenses, and paying all relevant taxes).
  • Reduce errors associated with paper applications and the resulting, costly rework by state employees

An Application for Coaches to Train Athletes

SportDrill is an existing web application that has been developed this fall by the NC State sponsorship team that needs further functionality and advanced features. The mission for SportDrill is to plan, generate, and track athletes' progress in their Strength & Conditioning and Sports Nutrition programs online! The objective of this project is to finish the existing web application and use it to develop and convert to a mobile android tablet (and IPad/phone) application if we have time.

If you choose this project you must be willing to step into the shoes of a coach to experience what goes into a successful training program. The first target of a coach is to "plan" a training workout based on the available time and resources and put it on a calendar. The second target is to "generate" an appropriate list of exercises, running drills, and volume needed. The final and most important target for coaches to "track" the progress to ensure the athletes get results.

Students will receive access to the existing web application that the NC. State fall team started to finish and add new functionality. The web application must be EASY & INTUITIVE for the coach to go through the three steps to plan, generate, and track athlete progress.

Most high school coaches' lack access to advanced technology and therefore the functionally must be simple to navigate a complex application. SportDrill will allow coaches to use an existing sample workout template to adjust for their use or to design a training workout from scratch. SportDrill will also allow a coach to plan the workouts on a calendar and finally it allows a coach to track their progress through charts and graphs.

After working with NC State for the Fall project we are in good position to pick up where we left off for the Spring Project with a new team.

Key Implementation for the spring will be to finish/complete the TRACKING feature of SportDrill and to enhance the tracking capabilities with intuitive features and graphs. Another important feature will be the implementation of the Nutrition resources for the athletes that will be provided to the NC. State team by the SportDrill team. Other features that didn't get incorporated are all documented with this project and are easily transferable to the new team.

A basic foundational prototype has been created by the NC State team this fall that allows the coach to (input) data to build a roster and player profiles. Second, the coach can generate (input) a list of approximately 12 exercises/running drills to be applied to an individual, group, or team. Next a coach can plan the workouts on a calendar. Lastly, these exercises and running drills can be printed for the workout, viewed by mobile app for updating, and to track and to observe progress. Enhancements of each of these three categories (Plan, Generate, Track) will be expected as well.

Creating this application will allow strength coaches to:

  • Eliminate piles of individual paperwork from years and years of training
  • Manage 250 athletes at one time from many different sports and in smaller groups within those sports
  • Include video demonstration connected to exercise and running drills to learn correct techniques of at least 100 different exercises and running drills
  • Make it "easy" for strength coaches to generate a daily/weekly workout and put it on a monthly schedule of training with other events
  • Track progress over a week, month, or year and display it visually on a chart or graph
  • Allow coaches to copy successful workout programs and for athletes to view their upcoming workout programs

Preliminary System Requirements:

Target 1. (Plan) Enter athlete information for various parameters and standards online to include: calendar, events, training days, and off-days. Athlete include weight, height, body fat, and current maxes.

Target 2. (Generate) INPUT a daily workout to include exercise/drill, sets and reps, and intensities and distances (see definitions in section I) Outline to include: Player, Group, and Team organization, exercises/drills, and workout plan/cycles.

Target 3. (Track) OUTPUT daily workouts of individual athletes programs based on baseline standards efforts shown by intuitive graphs and charts.

Target 4. Nutritional section added to the site. Information and resources will be provided by the SportDrill team.

Target 5. Intuitive Landing page (marketing page) created for SportDrill.com

Target 6. Coaches Dashboard displaying important features

Target 7. Player profile page

Target 8. Optimized for IPAD use. Mobile App if time permits.

Target 9. The system needs to be able to print all data by PDF (including weekly workouts, leaderboard, and test analysis comparisons) for sport coaches, athletes, and others interested in this information

What is highlighted in GREEN is what the NC. State fall team focused on mainly. Tracking still needs better functionality to be completed however.

Technologies

SportDrill is currently implemented as a Web application in Java and uses JSP, PrimeFaces and jQuery. Other technologies can be explored if it makes sense for the intuitive and ease of use of the application as long as they can be used in commercial applications.

Sponsor Background

Mr. Josh Allen is a former collegiate and professional baseball athlete. He is currently an entrepreneur and president of a fitness startup called SportDrill.

Mr. Chris Morland is an educator and coach who motivates performance and develops champions. Previously, he coached for 9 years for the Wolfpack as a strength and conditioning coach for Olympic Sports including 17 different men's and women's athletic teams NCAA Champions and more than 60 ACC team or individual champions. Most recently he has made the transition to teaching and coaching at Cardinal Gibbons High School. There he serves as the Director of Strength and Conditioning for all varsity, junior varsity, and freshmen sports and teaching health and wellness.

Students will be required to sign over IP to SportDrill at first sponsor meeting.

All Things Coach

Who is the target market for this website?

The target market for this software is the entire network of coaches and athletic directors in any sport on any country.

What platforms will this website be available on?

This will be a web-based platform that should work on mobile devices – iPhone and Android.

What is the main purpose of the website?

There are really two main purposes for this software. The first and perhaps most enticing purpose is to bring all of the daily and monthly tasks of a typical coach into one all encompassing "hub" in an effort to save time, headaches and the overall complications that come with the job. A second purpose and unique attractant for this software is the capabilities it brings to network with other coaches in a "social atmosphere" where everything shared, discussed or viewed is completely relevant to all of its members.

What are some of the main features of this website?

Here they are in order of importance.

-Coaching Tree. This offers the coach a place to show all the players he's coached, coaches he's coached with and coaches he's coached etc…Picture ancestry.com for coaches

-Online roster information and corresponding data. This allows coaches or players to login and upload their information (name, weight, height, size etc…) which will be the same place that coaches go to mass communicate with their players, but will also help them to easily submit sizes for uniform ordering, shoe ordering etc…

-Virtual events and online calendar. This tool will allow a coach to setup a "virtual event" (tournament, coaching clinic, game etc…) and share with other coaches in or out of his network. This will save time involved in a coach's scheduling of events. This would also be where the online calendar would be laid out which would provide game, practice, event and other important scheduled activities for all to view anywhere in the cloud.

The website shall be implemented with extensibility in mind. In the future, we also want to add the features below. The system's design should be flexible enough to support adding these and other features easily in the future.

-Statistical information and tools for recruiting and record keeping. The goal is for this software to one day be the main landing page for all statistical information for any player on any level (possibly including the main professional levels such as the NFL, NBA, etc…). This will be able to be exported automatically to MAXPREPS, RIVALS etc…automatically

-Communication platform with players and parents. This software will allow coaches to easily text, email, tweet, facebook, etc.. all of their players and parents from one single application or website.

-Ability to buy, sell or rent sports related equipment and facilities. This part will provide coaches (in most cases the schools they represent) an opportunity to save and make money for their programs. This feature will allow a coach to look for or post a particular need (gym rental, field equipment sale, etc…) within a search field that is specifically catered to and targeted at coaching needs.

Who can be a member of the website?

The focus this semester will be on the coach's and athletic director's membership and "login". Athlete's login will also be required for the online roster feature.

What are the personal info requirements for joining the website?

This website requires you to be at least 18 years or older, provide your full name, email, mobile number, school /team, city, state and zip code.

Students will be required to sign over IP to Sport Spiral, LLC at first sponsor meeting.

Adaptive Interactive Video Tutor System

Executive Summary

Strategic Motion Video (Patent Pending) is a unique interactive video-based educational system that provides learners with personalized training and the ability to interact with the training. Strategic Motion Video (SMV) provides the ability to customize the video being viewed to the viewer's desires in real-time and, also, the ability for viewers to ask a question in the middle of the training and receive an answer in real-time. A senior design team created a beta version of SMV during the Fall 2013 semester. The overall goal for the Spring 2014 semester is to refine the user interface to the existing SMV system and to extend SMV functionality in several ways.

Functional extensions to SMV include (not necessarily in order of importance):

An Administrative Portal

SMV data manipulations require real-time access to and sequencing of numerous segments of pre-recorded video. As currently implemented, SMV requires off-line, manual insertion of video metadata into a database and video files to a file system. The SMV Administrative Portal should provide a menu-based approach for these tasks.

Natural Language Processing

In order to deliver the best response to users' questions, the SMV system has to be able to understand what the user is asking by parsing an input string to extract necessary information. This information then needs to be matched to a pre-existing video response, also allowing for key word synonyms. Similarly, the content of video responses must be processed for key word tags. The existing system requires manual determination of these key word tags by listening to a pre-recorded video response. Since the audio content of each video is defined by a script (a script is a text file which is read during video production), the SMV system could use the script as input to the same natural language processing techniques mentioned above to automatically extract key word tags for each video segment.

Speech Recognition

Understanding text input is a valuable part of the SMV system. In order to advance SMV capabilities, the project team should also investigate how to implement speech recognition under SMV. Voice input interfaces to allow expanded usability are becoming common place. The team should spend time investigating commercial and an open source approaches to speech recognition for Web-based applications.

Instructor Asked Questions

The existing SMV system allows for learners (viewers) to ask a question while a video is being played. When a learner asks a question, the SMV system stops the current video mid-stream, determines an appropriate video response to the question, plays the response automatically, and resumes the original video from the stopped point. The SMV system should be expanded to also permit the instructor to pose a question to the learner (viewer). The learner answers the question, and the video continues, perhaps with a clarifying inserted video.

Security

The existing SMV system has no security features. The Spring 2014 team should investigate and report on any and all data or access related security issues and, at least, add a secure login/password facility.

Software Technologies Employed

The existing system uses PHP, CakePHP, MySQL, Video.js and Twitter Bootstrap 3. Any additional technology that may be required must be licensed for commercial use.

Students will be required to sign over IP to Strategic Motion Video at first sponsor meeting.

Flexible Service Delivery on an Intelligent Multi-Service Gateway (iMG) with OSGI.

The Allied Telesis iMG family of devices provide broadband access and are deployed by a Telecom Service Provider – in their customer's home or business. Typical services provided at this time include Video (IP TV), Voice (Voice over IP) and Broadband Data. Data services are provided within the home or business over Coax, Ethernet cables – or using an 802.11 Wireless Interface.

One of the challenges that Service Providers are facing now is how to increase their revenue per subscriber by offering additional services that they can charge for. We want to demonstrate some of the possibilities – that utilize the Allied Telesis iMG as a platform that can be used to offer services within the home. The resulting project delivery – should be a solution that can communicate with selected devices within the home – and can be used to demonstrate the possibilities such a solution could offer. We also want to use this project as a platform for experimentation by our engineers.

Areas of consideration could be:

  • Network Monitoring
  • Remote Management of in-home devices (e.g. Wireless Access Points)

Baseline development requirements include incorporation of the Equinox OSGI Framework into the iMG Linux based firmware base and the addition of any additional OSGI bundles required to meet the minimal functional requirements. From that point on – the goal is to develop one or more OSGI Bundles that can be deployed to the iMG and used to provide a service that the end user would value.

The starting point of this project will be a set of use cases – that will be used to define the devices required and the incremental feature content needed. We will provide some…but these should be seen as just a starting point – so plan to use your imagination!

By the end of the semester a subset of these use cases will be live.

Corporate Background

Allied Telesis is a network infrastructure/telecommunications company, formerly Allied Telesyn. Headquartered in Japan, their North American headquarters are in San Jose, CA. They also have an office on Centennial Campus. Founded in 1987, the company is a global provider of secure Ethernet & IP access solutions and an industry leader in the deployment of IP triple play(voice/video & data), a networks over copper and fiber access infrastructure.

Bandwidth Connected Universe

Overview

Bandwidth is a leading IP-based communication services provider that hides behind many of today's innovative communications solutions. We want to work with Computer Science students at our Centennial Campus office to build a new and innovative solution for real-time communication utilizing an emerging technology showing up in every browser: WebRTC. No more downloading apps and joining communities. Just communicate. Using video, voice, and anything else. To anybody. Anywhere.

Background

Bandwidth possesses a range of specific capabilities that can be brought to bear to help build truly ubiquitous interpersonal multimedia communications. This suite includes a comprehensive VoIP network, an API-driven communications applications platform, a number of creative communications apps, and the Bandwidth Connector webRTC application.

This is a great foundation to combine with new clever and innovative web applications imagineered by the team, to create a truly unique and universal communications experience.

  1. "what if any phone number could be used for video chat whenever the other person had a browser open?", or
  2. "what if any communication included full contextual information, including recent posts, current desktop contents, location-based weather, etc. in an automatic and transparent manner?", or
  3. "what if…?"

Your Objective

Build web-application capabilities that extend and simplify the way anybody to anybody multimedia communications happens, using the foundation provided by Bandwidth Connector, and the application and network resources of Bandwidth.

You will be building application capabilities of your own devising. You provide the creativity. Working with Bandwidth mentors you will:

  1. Learn about the available supporting systems and the core technologies like webRTC
  2. Define an application (or applications) that fits within the ecosystem, and that advances the objective of anybody-anybody real time multimedia
    • New devices, new information types, new interaction models, all are open.
  3. Do the software design and system integration to prove out the application(s)
    • involving REST APIs, webRTC, mobile web applications, and web apps.
  4. Perform the system integration needed to leverage the chosen platforms and capabilities
  5. Show off for the Bandwidth executive leadership.

These phases will be done using the Agile Scrum software development methodology, alongside other Bandwidth software engineering teams. There will be a product owner and scrum master dedicated to this project; available to provide support along the way. The team will be able to work in the Bandwidth Centennial Campus office with Bandwidth technical staff as needed.

It is recommended that students have experience with SQL, REST, JavaScript, and WebSocket experience (or a strong desire to learn them)

Republic Wireless

Async Calling

Overview

Republic Wireless, a division of Bandwidth.com, is dedicated to revolutionizing the mobile calling experience. We would like to sponsor a design project that engages students to build an asynchronous calling/voice messaging platform. Although the voice calling experience is a well understood model, it often is not congruent with the way we live and work. This project will enhance our hybrid calling experience by providing users an additional way of communicating as well as an alternative during times of limited connectivity.

Background

One on one Scenario

Alice is driving and needs to communicate with Bob about an important meeting. She records and sends Bob a voice message. Bob listens to the voice message at his convenience.

Group Scenario

Alice needs to tell her family where to go for dinner. She sends a group voice message to all the members of her family. Any responses get played for everyone in the original message.

Limited Connectivity Scenario

Alice is at work in a remote location with no cell coverage and inconsistent access to a wi-fi router. She needs to get in touch with her colleague, Bob, to discuss design changes to their project.

  1. Alice places a call to Bob over wifi. The call goes through and Alice chats for a few minutes.
  2. At some point during the call, the wifi connection drops.
  3. The Async Calling system on Alice’s phone picks up the connection status, records her speech, and sends the recording over the wifi connection when it comes back up.
  4. Bob responds to Alice which is delivered to her via Async Calling.
  5. Eventually the wifi connection improves and the two colleagues can speak in real time.

Bonus

Have async voice messages self destruct after a user specified timeout expires (like Snapchat).

Your Task

Build a prototype system that can be used to demonstrate Async Calling scenarios like the one described above. The project will require work in the following areas:

  1. Android application
  2. HTTP API for storing and delivering async voice messages.
  3. HTTP API to transcribe async voice messages - if Bob cannot listen to a message, send Bob a transcription of the async voice message.

Raptor GUI Configuration Tool

Background

RAPTOR (Remote Automated Product Testing and Observation in Real-time) is an EMC project to advance the state of the art for platform testing. It is a hardware and software platform designed to enable automated, remote testing of server-room rack-mounted equipment. The RAPTOR device can be mounted on a rack, and sensors attached to the device can monitor physical aspects of the system and report them over the network to our automated test suite.

In order to make RAPTOR more accessible to administrators, we would like to create a graphical user interface (web-based) that will allow RAPTOR to be configured visually. The configuration interface should feature a model of a server rack and a palette of rack-mountable hardware items which can be placed onto the rack model. Once a rack configuration is created, it needs to be saved and uploaded to the RAPTOR device. Testers can then select an appropriate configuration to be used by the automated test framework.

Project Scope

We have scoped this project such that a basic application could be implemented over the course of a semester. The development team will have considerable flexibility in the scope of the project as well as the tools used to implement it, however, we do have the following requirements:

  • Our development environment is based on Linux and open source tools, so ideally the application will target the Linux OS and use open source tools / libraries.
  • The application needs to be able to work with our existing XML-based configuration file format.
  • The application will need to upload the configuration files to the RAPTOR device, likely via SCP though there is some flexibility with this requirement (an alternate copy method could be used if necessary).
  • The application will need to be able to load images of supported hardware components, allow users to position them on a virtual rack, and support saving/loading layouts.
  • A web-based application is preferred, as it will have the widest possible audience. However, we're open to the idea of a mobile application which could satisfy the requirements.

Materials Provided:

  • Images of rack-mount components, along with metadata such as size, name, and type.
  • A file format for configuration files along with sample files.
  • Consulting from developers on implementation strategies and tooling.
  • On-site tour of our facility and a round table discussion with software developers about software engineering in the real world.

Benefits to NC State Students

This project provides an opportunity to attack a real life problem covering the full engineering spectrum from requirements gathering, to research, to design, and finally implementation. This project will provide opportunities for creativity and innovation. EMC will work with the team closely to provide guidance and give customer feedback as necessary to maintain project scope and size. The project will give team members an exposure to commercial software development.

Benefits to EMC

Defining configuration files for the RAPTOR currently involves editing XML files by hand. This is a lackluster and error-prone process. A graphical interface for creating the XML files will allow the process to be faster and easier. It will also allow administrators to easily verify configuration files by visually comparing the rack model on screen with a physical rack in the server room.

Company Background

EMC Corporation is the world's leading developer and provider of information infrastructure technology and solutions. We help organizations of every size around the world keep their most essential digital information protected, secure, and continuously available.

We are among the 10 most valuable IT product companies in the world. We are driven to perform, to partner, to execute. We go about our jobs with a passion for delivering results that exceed our customers' expectations for quality, service, innovation, and interaction. We pride ourselves on doing what's right and on putting our customers' best interests first. We lead change and change to lead. We are devoted to advancing our people, customers, industry, and community. We say what we mean and do what we say. We are EMC, where information lives.

We help enterprises of all sizes manage their growing volumes of information—from creation to disposal—according to its changing value to the business through information lifecycle management (ILM) strategies. We combine our best-of-breed platforms, software, and services into high-value, low-risk information infrastructure solutions that help organizations maximize the value of their information assets, improve service levels, lower costs, react quickly to change, achieve compliance with regulations, protect information from loss and unauthorized access, and manage and automate more of their overall infrastructure. These solutions integrate networked storage technologies, storage systems, software, and services.

EMC's mission is to help organizations of all sizes get the most value from their information and their relationships with our company.

The Research Triangle Park Software Design Center is an EMC software design center.

EMC where information lives.

FIMT Global Operations – Central Services

Fidelity's FIMT Global Operations – Central Services team ("Fidelity CS") has several responsibilities, the primary of which is production incident management and communication.

Fidelity CS currently maintains an Excel spreadsheet, used for tracking the progress of incidents that have had email communications (FIMT Alerts) sent. The spreadsheet also has several columns of calculated fields which are used for various metrics charts that are also maintained in the spreadsheet. Each communicated incident will generate emails which are delivered to interested parties, including senior management members.

To help ensure the quality of these FIMT Alerts, checklists are employed to guarantee a consistent look-and-feel among the emails. Further, checklists are also employed to ensure that the incident tracking system of record (ServiceManager) has the necessary updates throughout the lifecycle of the incident.

Challenges arise during heavy volume periods in keeping the spreadsheet updated. Since the spreadsheet can only be edited by one team member at a time, updates are often late or missing in the spreadsheet. The spreadsheet is manual-entry with no cross-validation with ServiceManager, so there can be quality gaps as well.

Fidelity CS proposes converting this Excel-based workflow into a database-based one. Fidelity CS is flexible with the technologies used, but prefers a relational database backend.

The following are broad requirements of the project:

CORE MODULE: Communication Logging

Convert the core workbook data to relational database tables, including all metadata.

  • Develop forms/screens for:
    • Data entry for new FIMT Alert incidents
    • Maintenance of code/value metadata
    • Maintenance of checklist items
  • Incorporate basic data validations against "system of record" data, to ensure key rules are being met, including, but not limited to:
    • The incident number must be valid
    • The problem number must be valid, and associated with the incident
    • For change related incidents, the change number must be valid, and associated with the incident
    • For change related incidents, the change ticket must not have been closed as "Successful"

CORE MODULE: Reporting

Create routines to duplicate the calculated fields in the workbook, including:

  • # Business days from open to FINAL
  • # Business days from mitigated to FINAL
  • # Business days from FINAL to PMR Date
  • Use these fields, along with the fields in the FIMT Alert to provide reports such as:
    • 13 month rolling, # business days to final, overlaid with # alerts per month
    • YTD, # business days to final by support group
    • YTD, # business days to final by Central Services team member
    • YTD, # finals completed per Central Services team member, overlaid with team goal

CORE MODULE: Alert Creation and Email

Develop a repository/set of screens for the generation of the FIMT Alerts.

  • Various "additional" fields will need to be queried from the user, and used to build an email message with a specific format.
  • The FIMT Alert should be created, formatted, and emailed from this screen
  • Prior to the user clicking "send" there will be a checklist of tasks that must be completed by the user
  • The text of the FIMT Alerts live in a repository

MODULE: "Approval" workflow

Develop a process/set of screens to manage the need for approvals prior to a final communication on an issue to be delivered. This process helps ensure the accuracy of the text

  • One or more individuals (depending on incident) will need to approve the content of the "Final" communication on an issue:
    • Level 1: Stakeholder Review (can be 1 or more individuals)
    • Level 2: Fidelity CS Internal Review (can be 1 or more individuals)
    • Level 3: Fidelity CS Management Signoff (will be 1 individual)
  • The names/responses should be stored in a repository
  • If the user tries to "send" the FINAL prior to all users signing off, an error occurs
  • An override process shall be built in to each level to allow for executive override
  • The "FINAL" communication will be created from the "Alert Creation and Email" core module.

MODULE: Post-Mortem Meeting Tracking & Follow-Up Items

Develop a repository/set of screens to track meeting minutes and associated follow up items.

  • Track notes from the post-mortem meetings in a repository
  • Track action items along with owner, due date

MODULE: Problem Review Document Creation

For each high-priority issue, and problem review document must be created. A subset of the data points from the above modules will be used along with specific data points for this document

  • Create the document using the repository fields already created.
  • Create tables/screens for the additional data needed for the Problem Review Document
  • Store the document externally as a PDF file

Notes:

  • Detailed business requirements as to data points required and samples of reports, format of emails, etc., can be provided to the student team at the beginning of the project.
  • Samples of any "proprietary" or "system of record" data can be provided (properly redacted) for student use.
  • The "system of record" table and field names will be provided so the team can create mock tables for their work.

A Unified Tool for Managing JUNOS Device Topologies

Juniper Networks, Inc. designs, develops, and sells products and services that provide network infrastructure for networking requirements of service providers, enterprises, governments, and research and public sector organizations worldwide. The company operates in two segments - Platform Systems Division and Software Solutions Division. The Platform Systems Division segment primarily provides scalable routing and switching products that are used to control and direct network traffic. It offers ACX, E, M, MX, PTX, and T series routing products and services; switching products and services for EX series, wireless local area network solutions, and QFabric systems; branch SRX, branch firewall, and J series security/other products and services; and JUNOS Space, a network application platform. The Software Solutions Division segment offers software solutions focused on network security and network services applications. Its products include SRX series services gateways for data centers; SSG, ISG, and NetScreen series firewall and VPN systems and appliances; JUNOS Pulse, JUNOS Pulse mobile security suite, and SA series secure access appliances; and routing services software and mobile applications, such as MobileNext. Juniper Networks, Inc. was founded in 1996 and is headquartered in Sunnyvale, California.

JUNOS is the operating system that runs on most of Juniper's networking equipment. It is Juniper's single in-house network operating system spanning routing, switching and security platforms on its router products. Juniper JUNOS was the first commercially available full-fledged modular OS with full memory protection available for routing products. Although JUNOS was originally derived from FreeBSD, subsequent product development resulted in major kernel and infrastructure improvements (like In-Service Software Upgrade and real-time packet forwarding plane).

Virtualization allows us to create a virtual (not-real) version of something physical. Virtualization has its roots from mid previous century where expensive mainframe computer resources were divided to run various applications. Virtual Machine Manager (VMM) is the name given to the infrastructure that allows developers and testers to dynamically create Virtual Machines (VM) capable of running a JUNOS. Users can create anything from a small configuration of routers VMs right up to a large network of router VMs interconnected by user specified and configured network connections. Benefits of such a system of virtual JUNOS devices are:

  1. Quick verification of software
  2. New Hire Training
  3. Build complex network scenarios on cheap - no cabling, no physical devices
  4. Saves time and capital

Currently we have a plenty of internal tools and methods which are created over time and provide various functions to create these virtual machines. We have mechanisms to connect virtual machines to physical machines. We have mechanisms to create and destroy virtual machines. We have mechanisms to run regression tests on virtual machines. But all of these tools have special requirements and confuse users. Hence a lot of onus falls on the users to ensure the correctness of the tools in terms of usage & familiarity.

We are looking for NSCU Seniors to understand Juniper's current set of tools for managing virtual JUNOS devices. Once the students understand what we have, they can create a unified tool for managing JUNOS device topologies for testing and training. This single interface should be able to make use of all existing tools and ease the workflow for the users. At the end of the project a user inside Juniper will be:

  1. Able to draw, configure and instantiate a topology of Virtual machines and Physical boxes.
  2. Able a user to save the topology and its related attributes.
  3. Able to run our regression test against the topology.
  4. Able to run private verification script on the topology

All of the above does assume that all existing servers are used as-is. We can certainly assume that this new methodology will be able to execute existing (& new scripts) remotely.

This new interface must run on Windows, Mac and Unix boxes. Its benefits include:

  1. Engineers can create a set of testbeds of VM with configurations to represent various topologies.
  2. Engineers can start them on needed basis. Even a nightly script should be able to do the same. The script should be able to do what a user can do interactively.
  3. Engineers can install their own images on these VMs and run some tests. Once done with tests we can restart the testbed. If needed we can save the testbeds and configurations to be applied for a replay later.
  4. We can combine Virtual testbeds with Virtual Spirent and provide traffic for testing routing protocols.

Mersive Interactive Interface Design and Implementation

The Mersive Solstice (WX-32) is a large format hi-definition display that occupies a wall surface area of approximately 9' by 17'. It consists of a surface upon which 6 hi-definition digital projectors (HDDPs) display imagery, by front projection, and a high performance personal computer (HPPC). The HDDPs are driven by the output from the HPPC that generates displayed images for each HDDP. These images have been processed so that along each of the overlap regions associated with neighboring HDDPs, the image has been blended in such a way that there is no discernable border between HDDP displayed images. The online specification sheet is found at

http://www.delta-americas.com/displaysolutions/Products/WX-Series-Displays/WX32.html

The imagery fed into the HPPC comes from several sources including direct network connections; WiFi enabled phones, tablets and computers; and (possibly) a video capture card. The images from different sources are mixed on the HPPC, with compensation (by image blending) made for the boundary effects of overlapping HDDPs. The resulting imagery is then projected seamlessly by the array of HDDPs on the display surface. The user of each source controls the imagery generated by each source. An assigned main user or "Orchestrator" controls the organization of all sources upon the aggregate Mersive display. The Orchestrator can be any one of the several users controlling the source imagery including the controller of the main HPPC or any one of the other sources.

One may envision the Mersive display as analogous to big iPad--without the touch reactive screen. The Goal of the SDC Project is to make the Mersive touch interactive in a variety of ways. The goal sequence becomes more sophisticated and is as follows:

  1. Use an array of Kinects to enable a single user standing at the Mersive display to interact with the display, using his fingers similarly to how one uses a mouse, e.g.
    1. change focus of overlapping window,
    2. move and resize windows,
    3. point and click on menus and other buttons.
  2. Building upon #1, enable multiple users to interact with the Mersive display simultaneously. This may (will?) require identifying the physical relationships between the multiple users, e.g. are they far enough apart?
  3. Building upon the experience with developing single and multiple user interaction interfaces in steps #1 and #2, the next goal is to develop additional, more sophisticated use cases for the multi-user, distributed Mersive system.
  4. Design a methodology/protocol enabling remote users, e.g. a tablet users connected to the Mersive display via a network or WiFi connection, to interact with the main display. This may in fact require a means to generate a mirrored version of the Mersive main display on the remote user's device.

A comprehensive solution to these problems may require an SDC team to build a framework upon which these and other problems may be solved; or it may simply be the case that each is a "one-off" solution. Hardware and software design and development will be required of the participating team—as will a plan for "use cases" associated with the goals. The LAS is located on campus and will be on hand to the SDC Project team as needed.

In the course of this SDC Project we hope to engage with the Mersive technical leaders as necessary. As such, any Intellectual Property generated by the SDC Project team will remain with the team contingent upon any Non-Disclosure Agreements executed with participating entities.

Abstract

A very common file-system practice is to use non-volatile memory as a journal to record operations that have been acknowledged to have completed, but have yet to be written to permanent storage such as HDDs. In the event of an unplanned shutdown, upon reboot this journal is replayed to restore the file-system back to its pre-crash state. To provide high availability, this journal is typically mirrored to one or more nodes within a cluster. This means that non-volatile memory must be available on at least two nodes and data must be written locally as well as remotely before a server can send completion status back to a client for a file-modifying operation. The most simplistic approach for ensuring memory is available both locally and remotely is with static partitioning. Static partitioning is when a file-system pre-allocates a fixed and unchangeable amount of non-volatile memory based on the number of mirroring targets within the HA group. Static partitioning is attractive because it has the invariant that if you can acquire non-volatile memory locally, you are guaranteed to have memory on a remote node as well. Static partitioning of non-volatile memory used for journaling can lead to an astonishing amount of wasted resources especially when the load is not distributed equally across all nodes in the cluster. Hence, the need to support dynamic partitioning of non-volatile memory.

Project Details

This project calls for the development of an algorithm to support dynamic partitioning of memory that is shared across 2 or more nodes within a storage cluster. The algorithm of choice must provide consistent performance in terms of IOPs and latencies across all of the nodes within the cluster. The algorithm must account for file-system constraints such as the inability to reclaim memory used for journaling until those memory contents have been de-staged to disk. This can be emulated by sleeping a few seconds before re-using the memory. Other file-system constraints to consider include:

  1. Disk latencies
  2. Interconnect latencies (transport used to mirror data to the remote node)

Students are encouraged to develop and measure the effectiveness of their algorithm with SimPy, an event driven simulation framework based on Python. The performance evaluation should be based on statistics instrumented and collected within this framework.

Students will need to make the appropriate trade-offs to determine the best algorithm to deliver consistent performance while not severely impacting peak performance. Things to consider (ordered in terms of importance):

  1. Pre-allocation Size: How much memory should be acquired up front by default
  2. Cap Size: What is the maximum amount of memory that can be acquired from the common pool by a single server/for a single mirrored object (aggregate in our case).
  3. Refill Triggers: At what thresholds should a server negotiate for more memory
  4. Consistent Performance: Can their algorithm deliver consistent performance for all nodes and all mirrored targets within the cluster
  5. Mirrored Objects (Aggregates): Assuming every aggregate can at most have 1 active journal and 1 journal de-staging to disk and that journals for different aggregates can be de-staged independently, how does scaling aggregate counts impact their algorithm?
  6. NVRAM sizes: How does it impact their algorithm
  7. Cluster size: How does it impact their algorithm

Benefits

Students will be contributing to the solution of a real life problem which is determining the most efficient means to manage a common resource throughout a cluster. This project has several components which are suitable for team-based course work:

  • Exposure to an event-discrete simulation tool (recommend SimPy)
  • Memory algorithm designs for high availability systems
  • Performance analysis to determine the effectiveness of their algorithm

Metrics Dashboard

NetApp creates innovative products — storage systems and software that help customers around the world store, manage, protect, and retain one of their most precious corporate assets: their data

The NetApp Support Site is the support portal for all NetApp customers and partners to obtain technical and non-technical support for NetApp products. Within the last year, NetApp has expanded the IT Application Development team that makes enhancements to the Support Site. The new team is using the Agile development methodology. Depending on the workload and the amount of supplemental labor added to the team, the development team may be composed of from 1 to 5 separate scrum teams.

Current Systems

In order to track the progress of agile development work, the team uses Rally (https://rally1.rallydev.com). Rally is a software as a service tool that is designed to track the development progress on user stories. Each user story has a state (defined, in-progress, completed or accepted). Rally has the capability to create multiple scrum teams and projects, each having its own sprints, epics and user stories. Individual members of scrum teams are expected to log work progress in Rally and maintain the data on an ongoing basis.

While the Rally tool has the capability to track testing defects, NetApp has used HP Application Lifecycle Management (ALM) for test management and tracking defects for many years. ALM is widely understood by development staff and business customers who perform application testing. As a result, the decision has been made to continue use of ALM for test management and defect tracking. All test cases are recorded in ALM. All test results are logged in the tool.

Business Problem

Usage of both Rally and ALM makes it difficult for the NetApp Support Site development team (Dev Team) to get a complete picture of the status and quality of development work. Rally alone can provide development status information. ALM alone can provide defect information, but a consolidated view is necessary for a complete understanding.

The Dev Team is asking the Senior Design project team (SD Project Team) to solve this business problem. Our initial thoughts are that appropriate data elements from each system could be assembled in some type of reporting repository which would be used by project leaders and management to monitor the progress and quality of work and to assure the team's commitments are met.

Other relevant information includes:

  • The Dev Team has initial dashboard designs that can be a starting point for the team but should not be viewed as the "final answer"
  • Both Rally and ALM have some data extract capabilities. The Dev Team will work together with the SD Project Team to formulate an approach for providing data for the team's work.
  • The desired solution can be either web based on desktop based. It will be a multi-user system and access controls will have to be part of a successful solution. The data is not considered sensitive. The SD Project Team can select whatever software platform/tool they view as the most effective to achieve the business objective at a reasonable cost.
  • The SD Project Team will have to identify an effective technique "cross referencing" the data in the two systems. The Dev Team is willing to make adopt some new work processes to enable this "cross reference", but the process change will have to be approved by the Dev Team.

Minimum Acceptable Product is:

  • A system that produces reports accurately showing progress of development work at the user story, sprint and project level including both development and testing progress and defect information
  • Reports should be easy to read and understand
  • Reports should have "roll up" (i.e. consolidation) capability and "drill down" (i.e. expose more detail) capability
  • System should be accompanied by adequate documentation of the processes required to extract and maintain the data and produce the reports on a weekly basis

"Stretch" Features Could Include:

  • Automation to streamline/facilitate the extraction of the data from both Rally and ALM
  • Trend reporting—Showing "over time" trends in development pace, defect rate or other key metrics
  • "What If" capability—Useful to explore the impact of adding a sprint team, driving down defect rates or other key metrics.
  • Other enhancements identified by the SD Project Team as they better understand the business problem.

Bronto Firehose

Bronto Software tracks billions of events per month through its marketing platform. Events such as opens, clicks, and conversions (to track revenue) are processed in real-time and displayed to our customers to give them information on how their campaigns are performing.

Your Senior Design team project will be asked to create the Bronto Firehose -- a streaming HTTP service that allows our customers to stream their tracking events in real-time. This streaming service will pull raw tracking events from Redis, enrich them with GeoIP information, and push them out to subscribing HTTP connections.

In addition to building the Bronto Firehose, you will also implement a Websocket UI that demonstrates these opens/clicks/conversions on a US map in real-time.

You can choose to implement your HTTP service in Node.js, Python, Java or Scala. You will be using Redis as a datastore for the raw tracking events and for any other data storage your might need. Bronto will provide the raw tracking events and GeoIP data.

Students working on this team will get great exposure to Redis, Websockets and writing solid, scalable HTTP services.

Company Background

Bronto Software provides the leading marketing platform for online and multi-channel retailers to drive revenue through email, mobile and social campaigns.

Over 1000 organizations including Party City, Etsy, Gander Mountain, Dean & Deluca, and Trek Bikes rely on Bronto to increase revenue through interactive marketing.

Bronto has recently won several awards:

  • NCTA 21 Award for Software Company of the Year 2011
  • Stevie Award for Best Customer Service Department in 2009 and 2010
  • CODIE Finalist for Best Marketing Software in 2011
  • Best Place to Work by Triangle Business Journal in 2010 and 2011
  • CED Companies to Watch in 2010

In 2002, Bronto was co-founded by Joe Colopy and Chaz Felix out of Joe's house in Durham, North Carolina. Since its humble beginnings, Bronto has emerged as a leader with a robust yet intuitive marketing platform for commerce-driven marketers.

Bronto's long-term focus on its customers, products and employees is now resulting in accelerated growth - its 60% growth in 2010 contributed to being listed as one of Inc Magazine's Top 100 fastest growing software companies.

Growing companies and organizations are constantly changing. Adding, moving, and restacking people and teams to different desks, or different floors is a challenge to keep straight. Often, this type of problem is solved with via an ad hoc collection of tools poorly suited to the problem. Even with shared spreadsheets, presentations and other documents, collaboration and flexibility may be severely limited. A better and more interactive way is needed to handle this issue.

Deutsche Bank Global Technologies and Space

DBGT is growing at a very fast rate. We have already doubled in size in 2013 and plan to double again in the next 2 years. We are constantly shifting people and teams to new areas or spaces as they open up. This takes a lot of planning, documentation, and updating of several spreadsheets, power points, and other internal system information to keep equipment and desks assigned. In preparation for a move, several different options are reviewed and shared with the various domain leadership for feedback. Once everyone is settled, reports are needed for occupancy levels, equipment usage, etc.

This Semester’s Assignment

We are looking for a group of dynamic students who can help design and develop a user-centric tool to help organize, manipulate and share the location information in a rich and engaging way. This can then be used to demonstrate, present, and inform products, teams, or organizations about their current and future location. Deutsche Bank can provide a representative data set(s) and knowledge of our current and future situations, but we need your ideas and technical expertise to create a dynamic solution.

NCSU Student Experience

Senior Design students in the College of Engineering, Department of Computer Science and students at the College of Design will possibly partner over the course of the semester to design, refine and develop this office management tool. Students will have access to top industry professionals to assist in the design principles, Agile/Scrum practices, overall developing/coding and testing. This will give the team a real-world experience of collaboration in product development.

Fujitsu America is one of the top three suppliers of retail systems and services worldwide. Using Microsoft’s .NET development platform, these systems offer a high performance yet open platform that retailers as diverse as Nordstrom, RadioShack and Dressbarn are able to customize.

Part of the Fujitsu Retail offering is a system that stores and manages customer loyalty information, allowing a retailer to target consumers with special marketing programs and discounts. Fujitsu has developed a prototype mobile application for customers, allowing them to change their information, view past transactions and see which promotions are available to them. The application was web-based written using the Google Web Toolkit (GWT) which generates HTML and Javascript compatible with multiple platforms from Java source code. The initial implementation was targeted only at iOS devices such as the iPhone and iPod Touch.

For the Spring 2014 project, Fujitsu would like to expand this application to work correctly on more platforms and have improved functionality. In extending the existing implementation, the senior design team will have broad latitude to refactor, redesign and replace existing components as necessary.

The application should be enhanced as follows:

  • Compatible with all iOS formats (iPod/iPhone and iPad)
  • Compatible with Android Phones and Tablets
  • Compatible with Windows 8 Tablet
  • Compatible with Windows 8 Phone platform (stretch goal)

The functionality should be enhanced as follows:

  • Integrated login using Facebook, Google+, Microsoft Live or Yahoo ID

As part of this project the Team will be responsible for the following:

  • Upgrade of the GWT platform to a newer version OR replacement with alternative web technology
  • Revision of code to work on more platforms and formats
  • Investigation and selection of Authentication facility for sign on
  • Integration of authentication with existing application

Application Dashboard Project Summary

Project Description

At Humana, we have a system called Operation Consumer Hub. This operational system has demographic data, analytical enrichments, and insights for current members and people who may purchase insurance products. This system processes different feeds/text files from different sources via Extract Transform Load (ETL) SQL Server Integration Services (SSIS) processes. For performance reasons, this information is first inserted into a staging database and then deltas are extracted and loaded into the primary database (SQL Server R2). This data gets exposed via a Windows Communication Framework (WCF) service to different consumers across the enterprise.

The database not only maintains information about members and prospective members, but it also stores logging information about the files, data feeds and ETL processes used for data import. Likewise, as WCF service calls are used to access information in the database, log entries are inserted to record what service was used, from where and how long it took. Thus, the database not only contains information of interest to the enterprise, it also contains a good deal of meta-information reflecting the status of the database and related software.

This project is focused on making this information readily accessible. The NCSU senior design team will design and implement a dashboard providing a holistic view of the current state, the health of the application, results of file processing logged by ETL processes, and service consumptions reporting. This would be a valuable tool for management and the production support team for both trend visibility and proactive application monitoring.

Deliverable

The Spring 2014 senior design team will design and implement a one-page dashboard displaying the following:

Core Features

  • A pie chart reporting total database entries for people who are members, those considered active and those considered inactive
  • A line graph of service consumption/calls for today and yesterday per 24 hours
    • Also need to display a table summary for the total number of service calls for today, for the week, the month and the average service response time for each
  • A Grid Summary with rows like the following illustrating file(s) each process executed along with frequency
    • The grid needs to able to filter and sort by Frequency, FileName and ProcessName
    • Rows need to be highlighted in Red if the error rate (Error Count / Total Records) exceeds 10%
    • The grid needs to have paging capability (10,20,30,40,50) to allow user to select a number of records per page (default 20). The paging control needs to display the current page out of total pages and allow the user to navigate between pages. Settings for paging behavior will be stored in a configuration file.
ProcessNameFileNameFrequency
(daily,weekly,monthly,bi-monthly)
Total recordsDurationCount
InsertUpdateDeleteError
  • The dashboard will support role-base authorization
  • The set of processes and feeds displayed by the dashboard must be configurable via a configuration file. In this way, new data sources may be added without changes to the implementation or recompilation.

Optional Features

  • Display details of longest service call in the database and the longest service call for the current week
  • The dashboard must automatically refresh on an interval given in the configuration file (default 5 minutes).
  • Capability to export dashboard as single image/pdf
  • Capability for users to switch between graphs/charts on the fly
  • Configurable support for a paged grid display of errors logged in EventViewer by database servers and web-servers specified
  • Capability for the user to generate graphs and charts based on the data in the Grid Summary

Technical Requirements

  • The dashboard will use Microsoft’s MVC framework and JQuery libraries. It can’t depend on any third party component like Teletrik or ComponentOne.
  • The dashboard will use stored procedures rather than embedded SQL to retrieve data from database.

Students will be required to sign over IP to Humana at first sponsor meeting.

Unlock the Power of Ipreo's World Class Financial Services Content. Ipreo's DAVOS suite of technology (Data and Visualization on Steroids) is a Service Oriented Architecture (SOA) framework which is used as the standard at Ipreo for flexible access to content. The framework is so powerful that end users can make a new Service on the fly! As illustrated in the following video recording, end users can visually mash up different services into a powerful result set to manipulate and analyze.

https://ipreo.webex.com/ipreo/lsr.php?AT=pb&SP=MC&rID=66573092&rKey=b0fac7425add85e3

The problem is that the DAVOS user interface and technology is so powerful it is complicated to use, and, as such, adoption of the front end is limited to a small number of power users. We need a new technology and design approach that will make it simple for end users to use and unlock the power of this awesome data to the masses (our clients)!

The existing user interface is built in Silverlight. The scope of the project is to replace the technology used in the interface itself related to the “Analyzer” depicted above and also included in part of the video recording. We want to modernize the technology stack, make the user interface more intuitive for end users and make it available from mobile devices. The combination of using a modern, browser-agnostic technology like HTML 5 with responsive design and an easier to user interface will unlock the power.

As part of this project the team will have access to Ipreo Data and Ipreo source code. The data are available via services that are already defined. Throughout the project, the team will be supported by Ipreo sponsors, including technology and design experts.

A successful solution will satisfy the following:

  1. Presentation technology must support a large set of the most common browsers
  2. The interface must demonstrate responsive web design, possibly including touch support
  3. The solution will use the following technologies: WCF, Bootstap, HTML5, JSON, jQuery
  4. Additional open-source technologies may be used in the solution, possibly including AngularJS

About DAVOS

DAVOS is our strategic data access platform. This platform has many flexible components geared towards getting you the web service you need when you need it. The DAVOS API comprises DAVOS Services that are managed dynamically with the DAVOS user interface.

Our strategy has been to move towards a service-oriented architecture to power our platforms and allow for integration of data across our product offerings. Ipreo has many different products with powerful data underneath, all powered by DAVOS services. These services are discoverable in our Pavilion of services, and consumers of the services can even use them to build their own libraries as needed.

Data is available in a variety of formats from the Davos API such as OData and JSON. Data sets include the following:

  • Ownership – The holders of a financial Instrument and key ownership statistics such as positional value, date , change and turnover
  • Securities – reference data related to a security itself (such as Google) inclusive of Industry, market cap and other key data points
  • Investors– Companies / Funds that hold or might buy securities and other useful data such as styles, approach, assets under management and areas of interest or focus in addition to 411 information (name, address)
  • People – Inclusive of different types of financial professionals most notable people making buy or sell decisions and key information about the person which can be used in identifying why they may make such a decision in addition to 411 information (name, address)

This is just a small example. Our data is always growing!

About Ipreo

Ipreo is a global leader in providing market intelligence, data, and technology solutions to all participants in the global capital markets, including sell-side banks, publicly traded companies, and buy-side institutions. From new issuance through ongoing investor management, our unique solutions drive connectivity and efficiency throughout all stages of the capital-raising process. Ipreo is a KKR portfolio company with more than 800 employees supporting clients in every major financial hub around the world.

Ipreo Raleigh

Ipreo officially opened its Raleigh, North Carolina office in October of 2013 and already has over 125 people in downtown Raleigh. The office is a brand new state of the art modern open office space on the 9th floor of 421 Fayetteville Street.

Web-Based Search & Visualization of Customer Data

About MetLife

MetLife is a leading provider of insurance and other financial services to customers across the United States, Japan, Latin America, the Middle East, Asia, and Europe. The company serves individuals and corporations, as well as other institutions and their employees. MetLife, Inc. sells its products through sales forces, third-party organizations, independent agents, and property and casualty specialists, as well as through career agency, bancassurance, direct marketing, brokerage, and e-commerce channels. The company was founded in 1863 and is based in New York, New York.

Project Background & Description

MetLife has close to 90 Million customers across the various products and business lines. The customer information is today maintained in a centralized system within a data repository. The data consists of a rich set of information regarding our individual and group/corporate customers. This includes basic indicative attributes such as name, age, address, sex as well as a wide variety of demographic and psychographic information such as class, education, hobbies, interests etc. The data also contains relationship information such as households. In addition, future release of the system may include additional policy and transactional information.

Currently, it is difficult for the business analysts within the company to search and explore this information for research purposes. This is due to legacy reasons in how the data is currently stored (highly normalized). The proposal is for building a web based search and data visualization tool. This tool will make it easy for the user to efficiently search for the customer information, and it will provide a rich set of visualizations for presenting the search results in interesting and informative ways.

Though there are commercial search engines available, we would like NC State students to leverage the many available open source tools and libraries to devise a solution. The team will work with experts at MetLife to define project requirements, including a set of supported queries and corresponding visualizations. The team will be responsible for selecting suitable technologies for the implementation. As MetLife is adopting the Hadoop architecture, we encourage use of open JEE architecture, the Hadoop-ecosystem-based tools and use of open visualization tools such as D3.js.

Enhance Quizard++

Background

Homework assignments and quizzes are important parts of education. They let students practice and internalize the material, and they give both student and instructor vital feedback on how much learning has occurred.

Unfortunately, students with disabilities can face a challenge. If the instructor is not good at preparing accessible work, a student with disabilities may not get the same education. Tablet computers like the iPad offer built-in accessibility features, but these features need readily available tools to make them useful for teaching and learning.

Last semester (Fall 2013), the Senior Design Center created Quizard – an accessible online homework and quiz application for teachers and students. The application uses the new ARIA tags in HTML5 to improve accessibility, with specific accessibility goals defined by the Web Content Accessibility Guidelines (WCAG 2.0).

The Spring 2014 team will enhance Quizard in three important areas:

  • Additional Question Types
    Currently, Quizard supports multiple-choice questions with a single correct answer. The Spring 2014 team will add support for a richer set of question types, possibly including questions with multiple correct answers, fill in the blank questions, matching, and reading assessment.
  • Instructor Reports
    Effective teaching requires regular assessment of student learning. Quizard needs to be able to generate reports and feedback for teachers that help them determine if individuals or entire classes need help in particular subjects.
  • SAS Curriculum Pathways Integration
    The SAS Curriculum Pathways program provides instructional resources for thousands of teachers and schools. Offering Quizard through this program will potentially benefit a great number of students, but it will require some changes in the backend and some retooling.

The Senior Design team will be supported by a SAS team that includes software accessibility experts (one of whom is visually impaired), user experience designers, a teacher of visually impaired students, and a seeing-eye dog! You will get a chance to conduct some usability tests at the Governor Morehead School for the Blind, located just on the other side of Pullen Park from the main NC State University campus. For more information about some of the experts you’ll be working with, see:

  • A short biography on the National Federation of the Blind website
  • An interview on WRAL
  • Unlocking the Power of the iPad for the Blind news report on BloombergTV
  • A very inspiring keynote address (10 min) from the STEM Career Showcase in Oct 2013.

Students will be required to sign over IP to SAS at first sponsor meeting.

Social Data Analysis

Project Overview

The goal of the project is to leverage the Teradata Unified Data Architecture in order to find patterns in data. The Teradata UDA incorporates structured data such as from a database, semi-structured such as from web logs and unstructured data such as from social network posts for fueling business intelligence, analytics and applications. In this project, students will collaborate with their Teradata sponsors to use the provided unstructured and semi-structured data to perform analysis and transformation using Teradata, Aster and Hadoop to incorporate the results in marketing campaigns. The systems will be provided to team as virtual machines. In the course of this project students will gain exposure to NoSQL, Hadoop, MapReduce, SQL, relational databases and web services.

Project Organization

The project will be run within the Agile Scrum framework. Agile development provides the benefits of early and consistent customer engagement. The Teradata representative will serve as the Product Owner for the Scrum team in order to provide application requirements and to assist with backlog grooming and acceptance criteria. Development will occur in two week Sprints. Planning for tasks will occur at the beginning of the Sprint, checkpoints and backlog grooming will be scheduled mid-Sprint and demonstrations of progress will happen at the end of each Sprint in a Sprint review.

Company Background

Teradata is the world's largest company focused on integrated data warehousing, big data analytics and business applications. Our powerful solutions portfolio and database are the foundation on which we’ve built our leadership position in business intelligence and are designed to address any business or technology need for companies of all sizes.

Only Teradata gives you the ability to integrate your organization’s data, optimize your business processes, and accelerate new insights like never before. The power unleashed from your data brings confidence to your organization and inspires leaders to think boldly and act decisively for competitive advantage. Learn more at teradata.com.

A System for Training Crime Scene Photographers Using Procedural Content Generation in Games

Overview. This project involves the development of a novel game-based system to help train crime scene photographers within the IC-CRIME system. IC-CRIME is a game-based tool for use by crime scene investigators to model real-world crime scenes, link objects in the virtual scene to real world databases (e.g., fingerprint, hair and fiber) and collaborate with detectives and criminologists within a 3D virtual environment. One of IC-CRIME’s key features will be the ability for crime scene photographers to make use of the system to practice skills needed to produce effective photographs while obeying rules regarding preservation of evidence (more information about IC-CRIME is available at http://iccrime.ncsu.edu).

Figure 1. A sample screenshot from an IC-CRIME collaborative session.

Crime scene photographers often must enter unfamiliar locations where crimes have occurred, locate evidence within the location without assistance of police or lab technicians and photograph the evidence in the context of the scene. These photographs must obey particular framing and content guidelines to maximize evidentiary value. The photographer must take these photographs without disturbing additional evidence within the scene.

Scope of Work. The project will involve students collaborating with the project PI (Young) and a graduate student. The implementation would use C#, a language that many CSC undergraduates are familiar with, and be built on top of the Unity3D game engine, a tool that is also used in many of the games-specific courses in CSC. Because the project would focus on the user interface, no significant 3D programming skills will be required (decreasing start-up time/learning curve) and the existing IC-CRIME team of developers will be available to help the Senior Design team while they are learning the tools and environment.

The project might readily be divided into three elements matching well with a 3 or 4-person team. First, the project requires work to design, create and control a procedural content system that generates crime scenes: interiors of houses and apartments where evidence of crimes has been included (e.g., broken locks on doors, upside down chairs, blood splatter added to walls). Second, the project requires a first person UI that provides the capability for a user to move through the space and enter in to a “photograph” mode, where the user sees the world through the viewfinder of a camera, adjusts the shot and takes the picture. Third, the system requires the ability to tag each photo with the objects and properties that appear within it.

At project initiation, the Senior Design team would work with the IC-CRIME team to develop project requirements and be responsible for brainstorming to settle on a UI, list of variations for the house/apartment/crime scene generation task and the photo tagging process. At the completion of the project, the Senior Design team would be included in the design and execution of an experimental evaluation for the system. This work could involve input on experimental design, data collection and statistical analysis.

Project Archives

2017 Spring Fall
2016 Spring Fall
2015 Spring Fall
2014 Spring Fall
2013 Spring Fall
2012 Spring Fall
2011 Spring Fall
2010 Spring Fall
2009 Spring Fall
2008 Spring Fall
2007 Spring Fall Summer
2006 Spring Fall
2005 Spring Fall
2004 Spring Fall Summer
2003 Spring Fall
2002 Spring Fall
2001 Spring Fall