I would like to work with a team to develop an app to automate the task of course scheduling for the Dept of Computer Science.
Background: Each semester, I have to perform course scheduling for the department, which involves around 60 courses, 40 instructors, 20 meeting patterns, and 30 classrooms. There are lots of constraints and preferences to accommodate as well. I would like a software tool to automate this task, even if it requires some small final manual cleanup.
Task Detail: This task entails (i) choosing which courses are to be offered; (ii) who will teach what; (iii) accommodate instructor's time preferences; (iv) determine a good schedule that minimizes conflicts and crowding; and (v) find classrooms appropriate to the enrollment size.
Algorithm Formulation: I have a general idea that the core of this problem might lend itself to an integer linear programming (ILP) formulation. In particular, there are constraints to be satisfied (this course must be offered, this course is optional, this instructor cannot teach in the afternoon, etc.), and there are things to be optimized (minimize overlaps/crowding, meet ideal class sizes, room not too big nor too small, etc.). So, this is a constrained optimization problem. We should be able to leverage open-source ILP solvers; in that case the problem becomes transforming the data into an ILP problem.
User Interface: It would be nice to have a simple interface to specify instructor's preferences and other constraints. At a bare minimum, a text file or spreadsheet will suffice. If there is time and interest, we could use a nicer data entry interface.
Platform: The tool does not need to be mobile. A web based app might be nice so it can be used from different computers. Something that could pull data from a spreadsheet (Google Sheet) would be nice though not required. A Google sheet has the benefit of being attached to a form where preferences and constraints and lists etc. can be populated.
I would like to work with a team to develop a tool to automate the semesterly task of matching students with jobs in the Dept of Computer Science.
Background: Each semester, there are 4-5 of us who have to perform the complex task of filling RA/TA/LA positions for all of our research projects and courses. This task is a complex matching problem, esp. before the start of the fall semester, when it can involve around 50-60 graduate students, 20-30 research projects, 20-30 graduate TA positions, and around 100 LA positions. There are lots of constraints and preferences to accommodate as well. I would like a software tool to automate this task, even if it requires some small final manual cleanup.
Task Detail: This task entails (i) first matching graduate students with RA positions, as much as possible; (ii) for those grad students who did not find a good match with an RA position, placing them as TAs in appropriate courses; (iii) hiring as many LAs as required to fully staff the courses. There are constraints (e.g., a TA/LA should have taken the course before) and preferences to accommodate.
Algorithm Formulation: I have a general idea that the core of this problem might lend itself to an integer linear programming (ILP) formulation. In particular, there are constraints to be satisfied (how many TA/LAs for a given course size, all graduate students with a funding guarantee must be matched with a job), and there are things to be optimized (instructors' and students' preferences). So, this is a constrained optimization problem. We should be able to leverage open-source ILP solvers; in that case the problem becomes transforming the data into an ILP problem.
User Interface: It would be nice to have a simple interface to specify instructor's and students' preferences and other constraints. At a bare minimum, a text file or spreadsheet will suffice. If there is time and interest, we could use a nicer data entry interface. We may also be able to integrate with a system developed in the XL lab for user input.
Platform: The tool does not need to be mobile. A web based app might be nice so it can be used from different computers. Something that could pull data from a spreadsheet (Google Sheet) would be nice though not required. A Google sheet has the benefit of being attached to a form where preferences and constraints and lists etc. can be populated.
As I mentioned by email, I'm happy to supervise a team to do extensions to the grad tracking software. One easy place to start is more automation and consistency in approving background requirements. The system is used to help grad students and department admin to keep track of the many milestones a student must accomplish before completing degree studies.
The team will be working with Dr. Porter, as well as users of the system (like Denise Kenney, and Dr. Jasleen Kaur).
An old man spins a prayer wheel and recollects playing with them as a child while his grandfather worshipped. He remarks that his own grandson plays with prayer wheels while he worships now. A fifth-generation metalsmith describes how his ancestors crafted Buddha images for temples in the past and how he preserves these inherited technologies. A hereditary Buddhist tantric priest shares what it means to him to work at the temple, how his father and uncles trained him for the role, and what he hopes for his own son and nephews.
These are just a few of voices that make up Swayambhu Stories, a community-engaged participatory research project in Kathmandu, Nepal that seeks to transform public understandings of Swayambhunath—and by implication, Himalayan Buddhist and cultural life.
The Swayambhu stupa is known around the world as one of Nepal’s most important and impressive religious sites. Yet, while Westerners typically conceive of Buddhism as an abstract set of philosophical doctrines most authentically practiced through silent meditation, Himalayan Buddhist practitioners themselves see the wisdom of the Buddha expressed in material objects, embodied actions, and social traditions that define communities. All of this is erased in the dominant Western understanding—along with the voices and knowledge of the very people who have preserved the tradition for millennia. Beyond this, the temple is at imminent physical risk from seismic activity. And the local knowledge and traditions associated with the site are threatened by Nepal’s rapidly changing socio-economic landscape as the next generation focuses on their studies and their screens, leaving little time to absorb their community customs.
Swayambhu Stories responds to these challenges by bringing Himalayan Buddhist stakeholders together with engineers, architects, and cultural heritage activists to protect the temple and its heritage by making the site digitally accessible to people all over the world, and by preserving and amplifying the knowledge of its caretaker communities. To achieve this, we are constructing a conservation-quality 3D digital model of the temple complex that will be available on the web and in VR, and an accompanying archive of oral history and interviews with community stakeholders and other Himalayan practitioners in which they share stories and memories in their own words.
At present, Dr. Leve is in Nepal recording video interviews. Our hoped-for product this semester is an easy-to-use (but powerful and flexible) archive structure that will allow us to store and organize these interviews and add to the catalogue as more arrive. The team will interact with Jim Mahaney in Comp Sci for project requirements and information.
We require an inviting public interface that offers users the ability to conduct detailed searches that will identify and link to interviews or portions of interviews that meet particular search criteria, including where particular topics or terms appear in the narrative. At a minimum, we expect to be able to input multiple categories of metadata manually and use them to sort/identify content. More ambitiously, we would avoid the need for some or all manual cataloging by using large language models to transcribe and/or translate the videos and thus prepare them for content-based searches.
We will provide team members with example archives and work with them to determine necessary categories, labels, and search criteria for this material.
For an accessible description of the project overall, see:
project coverage
This project involves documenting and preserving Buddhist cultural heritage in Nepal, using annotated VR models. Your coach this semester (Sam Shi) was a member of the original project team. Thus you have good help for this proposed continuation.Client vid Former COMP 523 Project Project description Supporting material
This project is a continuation of Fall 2022, Spring 2023, Fall 2023, and Spring 2024 where students turned an Excel spreadsheet (see attachment) we use for evaluating mental health providers into a website for providers to enter data. The students mostly completed the website and added a login feature for providers and 2 dashboards (one for administrators and one for providers). The Spring 2024 login system is complicated and needs to be simplified. If there is time, additional tasks could be to format the website (visually), then start adding formulas so we can make calculations for ratings based on the evaluator spreadsheet (attached). I have access to the recordings from previous semesters in a Teams channel which I can add the students.
project spreadsheetPast Description: We want to create an online portal for behavioral health providers to input or upload data when a group of Institute and DHHS staff evaluate their team. We use this data to rate items based on a fidelity scale. Teams currently submit a spreadsheet with a lot of data and we make calculations on the data. The online portal would allow the evaluators to see the data in one spot and make calculations for ratings. We also use a consensus spreadsheet for ratings which we would like to add to the online portal (if feasible during the semester). Long-term we would like to add the report template to the portal. Liles vid XLS fidelity XLS evaluator
Problem we need solved: We are working on developing a Media Search Engine to process media data to create media results reports software for Television, Radio, Newspapers, Magazines, Social Media, Blogs, and Web Streaming Media to not miss data. To help people become media aware and media informed with Media Analytics. Work on Administration to keep track of computers and software hardware on systems with security hardware problems and error messages data missed with Administration Analytics.
DigiClips Summary DigiClips Capstone DigiClips Order of Priorities DigiClips Project DigiClips overview
As a new college student, I have been tasked with the undoubtedly difficult job of managing almost all facets of my life. Of course, this sounds silly at first, but it is an obstacle that almost all can relate to. For some, it may come earlier or later in life, but the same realization appears nonetheless. That realization being that you have absolute responsibility of managing your own life.
Now, food is one of the most, if not the most important part of your life. I mean, we literally can’t live without it. Your thoughts linger around the question of where you’re going to get your food from, but the answer to that question is not the end of the journey. You must then ask if that food can even be eaten. And I don’t just mean can I viably eat the probably undercooked ramen I made in the corner microwave of the kitchen on my dorm floor. I mean, am I allergic?
It can be hard for a person still learning how to balance the rest of the responsibilities in their life to also correctly manage such an important question. That’s where SafeEats comes in. For the customer trying to manage their food allergies, they simply enter in their known food allergies, and we handle the rest. After a customer enters their allergies, the allergies are cross-referenced with the menus of restaurants to give the customer an easily accessible list of the foods on the menu which they can eat.
SafeEats would be a mobile application that served both iOS and Android devices. Since the app serves as a way to make dining easier for the customer, it would have links to other applications such as DoorDash, Postmates, or the actual online ordering system for the restaurant, and potentially a partnership with any of the previously named organizations.
Because these companies have already mastered online ordering, SafeEats would be unsustainable if it were to have online ordering of its own. Ideally, the application only makes the items on the menu which the customer can actually eat available to them, so as to avoid confusion or any possibility that they choose an item they are allergic to.
Approximately 32 million people in the United States are affected by food allergies, so the problem this app is solving is simple, dining accessibility for those with food allergies. Although I used a college student as an example of someone who would greatly benefit from this app, another relevant demographic is parents, as the safety of their children is of the utmost importance. While dealing with the pressures of raising a child, they would absolutely benefit from an app that ensured the safety of their children when eating food from restaurants. Overall, the app has one goal and one goal alone, easy dining in a safe way.
This is a continuation of an earlier COMP 523 project (S'24).
SafeEats is a mobile application with a format similar to that of DoorDash or GrubHub, and will be available for both iOS and Android devices. Around the world, food allergies have become more widespread and more severe, with hospital visits stemming from food allergies increasing threefold between 1993 and 2006, and hospitals seeing the largest amounts of cases in history. SafeEats serves as a way to make dining out more accessible and safe for those with food allergies. After downloading the app, the user enters their food allergies into the application's database, saving this to their client profile for reference. The application then cross-references the user's food allergies with the ingredients on the menus of restaurants and fast food chains, showing the user the menu items which they can eat. Therefore, the issue of safe online ordering and easier accessibility for those with food allergies (and parents /guardians of children with food allergies) are solved through the application. There are not any other particular systems which SafeEats must interact with. Supporting Doc
Buckner Heavylift Cranes is a crane company based out of Graham, NC. In the fall of 2023, we worked with a COMP 523 team to create Buckner University, a website made to address our need to manage job training for our employees. Buckner uses a training tool called ITI that provides online courses on safety for our operators and employees. The Buckner University site pulls from ITIs API, providing a single source of truth with greater clarity and analytics tools, allowing our operators and administrators to access all the information they need more easily. The site is currently deployed and provides full functionality for users to view all courses assigned to them and for administrators to view course completion for all users.
Our proposed project would involve picking up where the last two UNC teams left off in the development of Buckner University. Specifically, we want to make the site much more mobile-friendly and continue to enhance the admin tools. The front-end overhaul would involve recreating some UI elements and dynamically sizing all components to optimize the mobile experience. Additionally, we want to expand the admin tooling by pulling more information from Salesforce to enable a more granular view of what operators are certified on what cranes. We would love to give the entire admin panel a facelift along with the added functionality. To summarize, the primary goal of this project will be to enhance the user experience while expanding on the admin analytics tools.
A little bit about how the site is built. Buckner University is built utilizing ReactJS and ExpressJS. The back end connects to both the ITI and Salesforce APIs and processes the data to send to the front end. The front end displays that data and provides some filtering tools. The app is containerized using Docker and deployed to AWS.
Based on our project needs, the primary focus will be on working with and creating ReactJS components and setting up and using API connections in ExpressJS. However, there is also an opportunity for team members to gain experience and exposure to other technologies used in the app, such as Docker, AWS, and OAuth 2.0. We are eager to find a passionate group of students who are excited about continuing the work of the past UNC teams and making a significant contribution to our project.
Prior work In the fall '23 we had one of your teams build us here at Buckner Heavy Lift a Standalone training website which all of our employees are using to log into the training portal and also take courses. We are looking to continue this work with more reporting and statistics page on each employee. There will be both Backend and Frontend work for this project. The Goal would be to provide a score card for each employee based on the courses that they have completed. This data currently lives in several locations and will need to be pulled in and then add to the individuals page to allow them to see where they stand. There are several future plans that build off of this idea to ensure that all of our team have completed all of their needed safety courses to ensure that we are not putting ourselves in a bad spot as a company with OSHA.Supporting Doc
In today's world, laying healthy foundations for a successful marriage is more crucial than ever in romantic relationships. Here, the "Before I Do" mobile application comes into play, focusing on couples in the pre-marital phase and guiding those who seek to strengthen their relationships through a scientific and objective approach.
Module 1: Relationship Assessment
This module provides couples with an in-depth inventory to understand themselves and their relationships. Covering four fundamental areas—personality traits, family dynamics, relationship dynamics, and cultural influences—couples can conduct an objective evaluation.
Module 2: Relationship Report
Couples who complete the inventory receive a relationship report presenting a scientific assessment of results. This report helps couples understand areas for improvement, guiding them in laying the groundwork for a healthy marriage.
Module 3: Expert Assistance and Self-Help
The third module offers couples the opportunity to access needed expert assistance and explore self-help resources. If desired, this module directs them to professionals and supports them with specialized content, creating a secure counseling environment. Based on inventory results, this module provides tailored content to help couples enhance areas where they show low to moderate compatibility. This empowers couples to become conscious builders of a healthier foundation for their relationship.
"Before I Do" offers a unique mobile experience, providing couples with the necessary tools for a conscious marriage. Are you ready to strengthen your relationship? Take a step towards a healthier future with "Before I Do."
AnimaticFX is an internal web application designed to convert standard videos into Pixar-style and anime-style animations using various filters. This tool is intended for our team to simplify the process of creating animated content for internal use.
Application Domain: The application is used within our organization to streamline the creation of animated videos. It operates through a web browser, ensuring it is accessible to all team members regardless of their device or operating system.
Target Audience: The primary users are internal team members who need to produce animated videos for presentations, internal communications, or other purposes. The tool is aimed at providing a quick and efficient way to generate engaging video content without requiring advanced animation skills.
Solution and Technology Stack: The app addresses the need for quick and easy video animation by automating the transformation process. Users can upload videos, select an animation style, and receive the finished product with minimal effort.
Version Control: Integrate version control to track changes made to each project, allowing users to revert to previous versions if needed. Maintain a history of changes with timestamps and user information for accountability.
Technical Implementation:
Web Application: Developed using React to ensure a responsive and intuitive interface for ease of use.
Cloud Integration: Utilizes Azure for video processing and storage. Azure provides the necessary computational power to handle video transformations efficiently.
API Calls: Integrates with Azure and other services to manage video uploads, processing, and retrieval. Custom APIs are used to apply animation filters and return the processed videos.
Version Control: Managed with GitHub for tracking development progress and facilitating team collaboration.
Integration Requirements:
The application will work with Azure for processing and storing videos and will interact with APIs for applying animation effects. It is also designed to fit within our existing internal workflows and tools for content management.
Science Olympiad is a national organization that holds science tournaments for middle and high school students. This page has a brief description together with a couple of short videos to give you a better flavor for the program:
https://www.virginiaso.org/what-is-so
Events span the gamut of science and engineering fields, including biology, ecology, earth science, chemistry, physics, and mechanical and electrical engineering. However, computer science and software engineering events are not as well represented. One reason is the lack of a suitable computer-based environment in which students can solve coding problems under tournament conditions. We envision something like Gradescope, but addressing the unique challenges presented by Science Olympiad, including:
• It should be free, since SO tournaments have very limited funds. • It should enable fast grading, because tournaments typically present awards the same day that the tournament is held. • It needs to allow students to compete in teams of two or three, with each member of the team on their own computer, but able to see their own and their teammates’ answers in the test. • It needs to protect information about students, who are usually minors. • It needs to suppress the temptation to cheat where possible. Cheating in this context includes finding solutions on the internet as well as accessing or changing the answers of a different team.
We envision a web-based testing environment, where the event judge (called an Event Supervisor, or ES) sets up a Wireless Access Point (WAP) connected to a computer that is running the testing environment’s server. Neither WAP nor computer should be connected to the Internet. Students will connect their computer to the WAP’s WiFi network and access the testing environment through their web browser. (The use of the WAP is the primary method for discouraging cheating, because this makes it difficult for students to connect to the open internet.)
Desirable features for the testing environment include:
• Relatively easy loading of questions with a minimal level of formatting. . Auto-grading of answers by executing those answers and comparing the actual output to the desired output. It should also capture any syntax or runtime errors, and it should make answers and all outputs accessible to the ES. • Support for problem solutions written in Python. Ideally, other languages should be supported as well, but again this could be left until a subsequent version of the testing software. • Provision for reference materials in web-compatible formats (HTML, PDF) to be loaded into, and served by, the testing environment in addition to the test itself. • Relatively easy creation and distribution of account logins to teams
Should this project be successful, we (Virginia Science Olympiad, or VASO) will make it freely available to all tournaments in Virginia, and once we deem it stable and mature enough, to all SO tournaments nationwide.
Boots to Health Foundation is a non-profit focused on serving veteran health and wellness in Mechanicsburg, PA. Thankfully, Boots to Health is gaining traction and expanding throughout PA and into other states. They are hoping to have an app that aids in community, coaching, resources, and physical wellness for veterans. The executive team imagines an app similar to "Train Heroic", a physical fitness training app, which would appeal to veterans but also include resources, community chat, and aid given many veterans they support are facing housing insecurity.
A YouTube playlist highlighting the Train Heroic app and the features Boots to Health would like to include is below: you tube
BTH App ideasWe would like to develop an interactive research tool that will free up time for research teams during the most critical period of the proposal process – the planning phase. To ensure a successful proposal submission, it is essential to carefully review the sponsor’s Funding Opportunity Announcements (FOAs) to extract important deadlines, requirements, and other key information needed to prepare the proposal and associated budget. This time-consuming and detailed work is typically completed as a service by research professionals supporting dozens of proposals and can be challenging to turn-around in a timely manner.
We currently envision this research tool as an AI-driven application that will 1) quickly summarize key information from the wide variety of FOAs into a standard and easy-to-use checklist form, 2) create a draft a) budget plan, b) budget justification, and c) full budget using requirements from the FOA, standard UNC-CH proposal preparation information, and information gathered from the researcher through a simple Q&A process, and 3) review the final proposal against the checklist.
This project consists of developing an image classification based algorithm trained on a wide skin color range of dermatoscope (an imaging instrument used in clinics, which will allow the images to be standardized) images of skin diseases to accurately identify skin cancer. The goal of this project will be to improve the accuracy at which skin cancer is detected in darker skin tones, specifically in the beginning stages. Serious skin cancers such as melanoma have a five-year survival of 97% in earlier stages as compared to 14% in later stages (StanfordReport). In particular, visual examination with a dermatoscope is used to determine the presence of a skin disease from a mole, and then a physician can proceed to classify the skin cancer.
The process of building the deep neural network, while a valiant goal, can be shortened by condensing the project to simpler image classification with specific parameters. Katie Heath, a BME PhD student at UNC, has developed an algorithm with a similar purpose for cancerous tumors in the brain. The results will be similar to what was achieved by an algorithm developed by Google trained to identify 1.28 million images from 1,000 object categories (GoogleNet Inception V3 CNN architecture). This algorithm has been trained to differentiate between cats and dogs, but it can be trained to identify and classify skin abnormalities, with an emphasis on skin cancers. The Stanford study attached below provides background on the type of results needed and the potential flexibillty and scope of the project. Dermatoscope images needed to train the algorithm can be secured from an online ISIC database or through UNC Hospitals with appropriate HIPAA guidelines followed. Data will be anonymous. Images will be classified and sorted into categories, with an emphasis on gathering large amounts of data from darker skinned patients, and images can be inputted as pixels with data labels. Biopsy confirmed images will be used to train the algorithm.
Upon development of this algorithm, the results can be analyzed using a sensitivity-specificity curve, which measures the algorithm’s ability to accurately identify malignant and benign lesions. This algorithm will be built as a computer application that uses data from dermatoscope images during routine skin checks at a dermatologist or primary care clinic. Our ultimate goal for this project is to analyze and improve the accuracy at which these algorithms can detect malignant and benign skin cancers on darker skin tones, using standardized dermatoscope images to facilitate easier completion of the project. This will be the first step in eventually creating an explainable AI powered application that doctors can reliably use to supplement and enhance their diagnoses.
AI in Melanoma Stanford Study Link:
About:
The Global Education team with UNC Global Affairs manages the Collaborative Online International Learning (COIL) program at Carolina. We have worked with over 70 instructors to incorporate COIL into past and upcoming courses as a method for enhancing global and intercultural learning for over 3,000 UNC students. The course collaborations include over 50 international institutions across nearly 40 countries. We are entering the fifth year of COIL and the amount of data we are recording is growing.
Ask:
This project will create a searchable database or platform for COIL data. The purpose of the project is to allow for better data management, increased usability, and enhanced ease of access and use.
Current Status and Context
Currently, the data is recorded in an Excel spreadsheet across multiple sheets with amateur formulas and functions that was created in a piecemeal way. As the entries and variations of information grow, the data has become more unwieldy to manage. With the entries and formulas being manually entered, there is also a level of human error for producing accurate outputs.
Examples of data recorded and populated include:
• Faculty information • Course information • Partner institution information • Number of faculty involved • Number of UNC schools and departments involved • Number of countries involved • Number of funding awards offered • Number of students involved • Tracking this information cumulatively and by terms.
Users and Use
This information is used for administrative tracking purposes, but also for reporting and communications purposes.
Access to the data/database is for internal use by UNC Global Affairs staff and is not public facing.
Specifics
• We seek the project team’s guidance on a suitable platform for housing and organizing the data (e.g. Excel/Access, Tableau etc.). • We hope to have a searchable database that is more user friendly and accessible for staff: o Data management: enter new information (e.g. for administrative tracking) o Usability and access: easily grab output data points (e.g. for reporting and communications). • Additionally, we seek a way to better organize sub-data.
CS Academic Advising is a team of faculty who respond to advising questions or concerns among undergraduate students. This project will add an Academic Advising feature to the CSXL Web application. Its minimum viable functionalities will include facilitating async communication between advising and students, keeping those records associated with a student's advising history. Additionally, sharing the scheduling of academic advising is desired. A stretch goal would be facilitating meeting booking and keeping notes on meetings of the past.
Many large courses in our department have teams of GTAs and UTAs which need to schedule coverage of office hours. A Spring '24 COMP523 team created a tool within the CSXL Web Application for courses to manage their office hours queues (replacing Course.Care / MyDigitalHand). Courses, thus, already have GTAs/UTAs associated with them, but currently developing and scheduling a team's assigned hours is done using outside tools (such as Google Sheets) and requires regular work. The goal of this project is to make it possible for: 1. a team lead to establish a general schedule for future week(s) - this schedule could include planned office hours, lecture help, grading, or other types of blocks 2. members of the team to submit their availability during these weeks 3. a team lead can make assignments based on availability -- stretch goal of a first pass of assignments could be automatically generated with a heuristic algorithm (this problem is called the Scheduling Nurses problem in computer science and is generally NP Hard) and highlighting places where constraints/needs. A few extra pieces of information exist in this tool that will require some configurability: 1. Blocks of time may ideally have a constraint with number of simultaneously scheduled TAs 2. Hours expected of each member of the team to be scheduled each week (potentially other constraints)
The CSXL Web Application's back-end is currently organized into three layers: 1. FastAPI Routes which serve Pydantic Models 2. Services which surface Pydantic Models 3. SqlAlchemy ORM Entities backed by a RDBMS We believe there is a path that simplifies this architecture significantly. If so, it should make introducing back-end development in COMP590/423 more approachable and remove some accidental complexity from our code base. This belief is centered around a modern open source project that unifies Pydantic Models with ORM Entities; the project is called SqlModel (https://sqlmodel.tiangolo.com/). It is created by the FastAPI author, Sebastián Ramírez (@tiangolo). This project is exploratory and aims to fully refactor and replace at least one significant feature/module of the CSXL backend. The hope for the new architecture is distilling down to two layers: 1. FastAPI Routes which implement business logic and serve SqlModels 2. SqlModels which are backed by the RBDMS We believe this will remove accidental complexities based on two intuitions. First, our current FastAPI routes are effectively a facade over the service methods which back them and rarely have meaningful logic besides dispatching. Second, we currently perform a lot of ceremony in translating between the representations of our ORM Entities and our Models. The SqlModel abstraction which unifies them resolves this. A successful end-to-end refactoring of a feature should pave the way toward deploying this in production. Of course, addressing the unit/functional testing stories of this refactoring is also a concern.
There are multiple features of the CS Experience Labs' website which use polling on a short interval to stay live and up-to-date. Two examples include the coworking page's seat availability status and an office hours queue's current queue status. Ideally, these two features, and perhaps more in the future, would be updated live via a websocket connection rather than HTTP polling.
This project aims to explore architectural solutions for handling WebSockets across the layers of the stack for the two existing features which need it. Since the problems are similar in nature, the hope is by addressing each at the same time a common approach in our technology stack can be identified that will also work well in other areas of the web site. For scalability purposes, this project may investigate adding another service for publish/subscribe management (such as redis).
Ultimately, the ability to get real-time updates via a websocket will improve the user experience of these features and more to come.
The current CSXL code base's testing and verification story is primarily focused on backend integration tests which provide coverage from our backend service layer to the database. We need a better testing and verification story for front-end code and full-stack integration.
Our front-end framework is Google Angular, which uses Jasmine and Karma testing frameworks by default. This project aims to add front-end testing and verification for a complete front-end feature on the CSXL code base. Additionally, it aims to develop documentation and training guides for future students to contribute to front-end/UI testing coverage.
Ideally, this project would also investigate end-to-end, full stack integration testing for some of the key features of the web application.