Client Project Proposals for 2019-20¶
Below are the client project proposals for our 2019-20 Capstone courses that I have received so far. I will be updating this page as new proposals arrive. This year we have over 160 students in the course, but few client projects (continuing the trend that started in 2014).
You have two choices as explained here:
Choose to work on one of the projects below.
Choose to work on your own startup project. Most students will need to do this one.
1. Carolinas Climate Resilience Conference Mobile Scheduling App¶
The Carolinas Climate Resilience Conference is hosted by the Carolinas Integrated Sciences & Assessments (CISA) research team, based in the Geography Department at UofSC. The conference was held in 2014, 2016, and 2018. Our next convening will be in fall 2020. The conference draws around 250 people primarily from North and South Carolina. Although, we do have participation from agencies and organizations throughout the Southeast. The conference format includes 3 plenary sessions and 6 blocks of concurrent sessions over 3 days (½ day, full day, ½ day). Each concurrent session usually includes between 3 to 5 speakers giving individual presentations or as a panel discussion. You can access the agenda for the 2018 conference We would like to request a mobile scheduling app that would allow attendees to view the conference schedule online and set up their own schedule for presentations and events they would like to attend over the three days. We will want the ability to edit the information in the app ourselves, to update the conference program as needed, add in the list of speakers, update the list of conference attendees, etc. Key features could include:
- A searchable agenda
- Links to presentation and session abstracts
- A “My Schedule” option for attendees to designate the sessions and events they plan to attend
- A map of the conference facilities
- A list of conference sponsors
- A list of exhibitors (with a map of their table locations, if possible)
- A list of attendees
- Link to access the conference website
- The ability to edit all of this information ourselves
Other helpful components that would be nice but aren’t necessary
- A place where attendees could add notes about the sessions they attend
- Make the list of attendees searchable
- Cross-reference attendees with their presentations or posters on the conference agenda
- A way for attendees to connect via the mobile app
Other conference app examples: * American Meteorological Society (AMS) 2019 annual meeting * American Association of Geographers (AAG) 2019 annual meeting * CitSci 2019 Conference, hosted by the ExOrdo app
We won’t have the conference agenda set until summer 2020. So, the app should be developed based on the 2018 conference agenda and participant list, with the ability to update the data. If possible, the app should be accessible on both Apple and Android operating systems. For more information, contact
2. Fall Recorder iOS App¶
I am hoping to develop an app in which clients that are at risk for falls can more accurately record falls or near falls that occur. Often individuals will come to physical therapy and deny any falls or under estimate balance trouble in the home due to no physical injury occurring. I am hoping an app will give individuals a real time option to not only record number of falls but more accurately identify a fall to assist physical therapists in providing recommendations and interventions to minimize a fall risk. See below for the scale I’m hoping to include in the app. I also would like the ability to record (brief) circumstances surrounding the fall (ie I was getting out of the shower). Finally, I’m hoping this data could somehow be visualized over time (ie bar or line graph).
Image result for hopkins fall
Alicia Flach PT,DPT Board-Certified Clinical Specialist in Neurologic Physical Therapy (NCS) Board-Certified Multiple Sclerosis Clinical Specialist (MSCS) Physical Therapy Faculty Scholar at the Parkinson’s Foundation Clinical Assistant Professor
3. Mobile app for the 2020 Stress Neurobiology Workshop meeting¶
On May 12-15, 2020 USC will host an international meeting of stress researchers, entitled the 2020 Stress Neurobiology Workshop. The meeting attracts ~200-250 faculty and students from around the world, and includes two keynote addresses, several symposium sessions and poster presentations. Since this is a relatively small meeting, the organizers would like to add a mobile app for participants to use and think this is a great real-world design experience that would highlight UofSC’s computer science program. Designers would be welcome to attend the meeting and help launch the app (if desired).
Key features of the mobile app would include the ability of the organizing team to easily: 1) post the agenda and be able to shift the agenda during the meeting if necessary (for example if we need to modify the order of presentations at the last minute, etc.); 2) send meeting details to all participants as needed; 3) post abstracts for talks and posters; 4) include a list of participants and their contact information. From the participant point of view the mobile app should allow 1) viewing up-to-date agenda including any last-minute changes; 2) viewing abstracts; 3) taking notes during presentations /posters on their devices; 4) contacting other participants directly; 5) access social media sites. Other nice features would be to allow participants to post a research profile with their contact information and to access information on Columbia such as restaurants and night-life. A key element will be having the project completed by April in 2020.
Request submitted by the 2020 Stress Neurobiology organizers: Drs. Lawrence Reagan, Marlene Wilson, Jim Fadel and Susan Wood at the USC School of Medicine are the local organizing team. We have all used similar mobile apps at larger meetings, and are looking forward to working with the design team on this project.
Marlene A. Wilson, PhD
Professor and Chair
Department of Pharmacology, Physiology and Neuroscience
4. Free to Fosters¶
I’m an assistant professor in the College of Social Work and my research focuses on child abuse prevention. Over the past few years, I have been working with foster parents and my app idea focuses on their needs. I would like to develop an app called Free to Fosters that allows individuals or families to donate goods directly to families who foster children. Foster parents are receiving children into their homes all the time who may not have any possessions. Foster families need to obtain clothes, equipment (e.g., strollers), and toys very quickly to meet the needs of the children they are caring for. Even if you’ve been fostering a long time, you probably don’t have clothes in the right size or toys that match the new child’s interests. At the same time, parents are constantly donating or giving away outgrown children’s items. This app helps them meet up.
Individuals in the community list items they would like to donate and upload pictures (e.g., clothes, toys, musical instruments, cribs) and agree to give them free to foster parents. Foster parents are given a log in through statewide foster parent association groups which allows them to be a receiver. Foster parents can search existing listings in the app or post requests (e.g., boys winter clothes 18 months). The app helps people who want to donate connect with foster parents who need the donations. If a child outgrows the items (e.g., highchair), the items can be listed again for a new foster parent. Foster parents are anonymous and donations can be dropped off at local DSS offices.
Kristen Seay firstname.lastname@example.org
5. Surges and Waves in Piping Systems Webapp¶
Existing software for the simulation of surges and pressure waves in piping systems WH (Version 7.0) is written in FORTRAN and has been used worldwide by consulting engineering firms and governmental organizations. An executable copy of WH and a 113-page User’s manual are provided to User. User prepares the Data input file for his/her project or modifies manually or interactively using another software, WHINPUT. After execution, WEH writes output in a file and computed results for specified devices in other files for plotting or post-processing. For more information, see www.compapplications.com
Features of interest for the Webapp (open for suggestions):
Specified Users will be issued an account on monthly or yearly basis to allow access to WH via cloud but the User should not be able to copy the executable version of WH.
Webapp will allow the User to execute WH and write the output in files for post-processing and plotting of computed results (variation of various variables for various devices with time, variation of pressure at specified times along pipeline on line diagrams or on maps).
M. Hanif Chaudhry
Associate Dean (International Programs),
College of Engineering and Computing,
Tel. (803) 777-8318 or 777-3652
6. Command and Control Webapp¶
For this project, students will work with a start-up to develop a web app that will provide Command and Control (C2) abilities for sentries and first responders. Agencies responsible for the security of large campuses need the ability to have C2 of their area of responsibility (AOR). This large campus could be a school, hospital, airport, military instillation, a power plant, etc. These places rely on sentries to provide a defense from threats that could harm the public and software can be a force multiplier in this domain. Ideally, this web app will show a geographical map of the AOR, and under the hood it will have a framework available for interfacing with 3rd party sensors. These sensors could be access control panels, gunshot detectors, motion detectors, radar, or cameras using A.I. for threat detection. The web app will alert the user to an anomaly, and the user can make a decision to mitigate the threat, dispatch authorities, send automated announcements, or lock down a building.
Starting off I plan on the students using simulated sensor data. I would like them to implement socketio into this project to make it easier to feed the web app information from these virtual sensors. Once this is established I would like for them to explore integrating Arduinos with motion detecting and toggle switches representing doors, and maybe using Arduinos with GPS and 900mhz Lora radios (such as the ttgo t-beam). We can provide the Arduinos and sensors.
Lenel is a popular access control company that has an SDK and I will apply for access to this but it’s not guaranteed. I attached a PDF with more information about that.
7. Kivy Plotting Library¶
Kivy is an emerging NUI built in Python that works across Linux, Windows , OS X, Android, iOS, and Raspberry Pi allowing an application to be transformed to virtually any platform desired. It is built using OpenGL ES 2 and Cython combining the benefits of near-C speeds with GPU processing for graphics. Touch is a default ability of Kivy with support for stylus, finger, and trackpad shortcuts included out-of-the-box.
However, Kivy does not have a true plotting library which limits its use in scientific and other data uses. There is one library available from Kivy’s community contributions known as Kivy Garden. This library is known as Kivy Graph and has not been updated in over a year. This library provides very limited and basic graphing functionality, but no real customization, not to mention it does not quite follow the same vein of visuals and extensibility as the rest of Kivy. Another library, Kivy Matplotlib, sought to bring the power of Python’s main plotting package to Kivy, however it is riddled with bugs and often causes Kivy to freeze.
Due to this, ASSET requests a team to take on the challenge of developing a true OpenGL-enabled, customizable, and extensible library for plotting. The library should have the following features.
- Use Kivy’s OpenGL abilities that take advantage of available GPUs
- All items should work with Kivy’s scrolling and scaling functionality, as well as touch
Common to all graph types
Ability to control axis titles, tick marks, grid lines, frame lines , titles, line colors, line thickness, line type, text, text size, etc essentially any way items of a graph can be manipulated
Legend with placement control
- Ability to update the graph in “real time” without lag or crashing
- When mousing over, ability to display data under mouse in a pop up or another Kivy widget
- Guidelines when mousing over so user can more easily see the data values correspond to the axis
- Ability to add text, or a kivy widget, anywhere on the plot
- Default color scheme and marker scheme that cycles as data series are added to the plot
- Ability to zoom in/out, and return to 100% zoom
- Ability to display multiple lines on the same graph for different data series
- Ability to connect the multiple lines to a legend, with legend placement being able to be controlled by the user
- Ability to turn on point markers if desired
- Ability to pick different point marker styles
- Ability to attach text to the marker styles
- Ability to plot different
- Ability to have a grouped, individual, stacked in both vertical and horizontal orientations
- Ability to pick different bar styles
- Ability to attach text to the bars
Full documentation of API, and in-code documentation of functions
- Documentation should include how to continue extending the library
- Any other plot/graph types the team feels would make the library well rounded
An example of a very flexible and extensible plotting library is, in fact , Python’s Matplotlib which can serve as a reference for the project.
8. Web Application: Event Attendee Scheduling Based on Mutual Availability¶
Basis Publishing, LLC
We are looking for an app that will provide an optimal schedule of event attendees based on their mutual preferences for dates and times. The app user might upload a spreadsheet of 100 attendees who signed up for a workshop with 35 possible date & time options. The app user wants to hold up to 10 maximum workshops with each workshop hosting at least 5 and no more than 7 attendees. The user uploads the spreadsheet with attendee availability into the application, changes the application settings to minimum of 5 attendees, maximum of 7 attendees at each event, with no two events scheduled for the same time (or selects an option to allow duplicates), and then clicks submit. The software returns a downloadable file with all 100 attendees sorted into groups of 5-7 with no duplicate time slots, reflecting the optimum possible distribution based on attendees’ preferred times. If a schedule that fits the parameters cannot be created, the app returns the best possible arrangement and a list of names who could not be sorted into date and time slots.
We and our clients have been doing this kind of scheduling manually for three years and would like to automate the process. We use it for scheduling webinars. Our clients are university professors who use it for scheduling online meeting and presentations with students.
Details on the data sets we use:
This application should sort people into scheduling options based on mutual availability. App users will upload a spreadsheet containing the following columns: Name, [Date&Time 1], [Date&Time 2], [Date&Time 3]…, out to perhaps as many as 35 date & time options. In rows below the header row the name column contain an attendee’s name. For each name listed 6-8 date & time columns will be ranked 1 (most preferred) to 8 (least preferred) and then hold blanks for the remaining columns.
|Name||Mon 9/1 10am||Mon 9/1 Noon||Tue 9/2 10am||Tue 9/10 Noon|
The spreadsheet would continue down for perhaps as many as 100 possible attendees (or as few as 20) and out to perhaps as many as 40 date & time options (or as few as 15). We will provide two real-case data sets in CSV or XLS/XLSX format for development and testing.
The app user will upload a CSV/Excel file and tell the app the minimum and maximum attendees that should be scheduled for each event and whether duplicate events within one timeslot are acceptable. The program then attempts an optimal distribution of attendees into the options that work best for them.
We need a web-based application that can run on our servers. We have a commercial VPN (KnownHost) running CentOS 7.6 with Apache 2.4.39, MYSQL 5.7.27, and PHP 7.0 (we will be upgrading to a newer version of PHP soon). The user interface should also be web-based (html/php).
We are happy for the code to be released under an open source license that allows us to use it for our clients and business partners.
Professor of Communication
Department of English
University of South Carolina
9. Cable Company Website Chatbot¶
Jack cable company customer
ACME Cable company
Sam ACME Company Technician
Travis ACME Company Customer Service Representative
User story/use case (Sam):
Sam is ACME company technician who goes out to ACME customer sites to fix internet connectivity issues. He has ability to access ACME customer website and specify his availability as well as manually book himself for certain days/times.
User story/use case (Travis):
Travis as customer service representative handles chat conversations (no queue or other sophisticated capabilities are required in this use case). If chatbot is not able to handle the request through the automation, customer will get routed to Travis to help with the issue.
User story/use case (ACME Cable Company):
ACME Cable Company offers its customers access to the website (same website that technicians able to access to operate the calendar). On that website customers may learn about ACME Cable Company services as well as report problems. To report problems ACME Cable Company offers chatbot that:
- Greets the user
- Asks for how it help
- Identifies the intent (“my internet is slow”)
- Offers to schedule an appointment by displaying to the customer the calendar widget with available appointment dates/times.
- If no appointment is available, chatbot will connect customer with the
customer service representative who will be able to help.
- As part of this story customer and Travis should be able to interact via chat, but no need to address the use case any further
Use case/User Story (Jack):
Jack is ACME Cable Company customer and noticed that internet connectivity is slow. Jack would like to report that problem by accessing ACME Cable Company website. <<< the rest should be self-explanatory from the use cases above.