Team Status Report for 02/24

Risk Mitigation

According to both the feedback from the design review presentation and our evaluation, the most significant risk is the NLP process. To further guarantee usability for visually impaired groups, we would add detailed features including audio instruction that could help the customers to use the product more efficiently and a “start recording” and “end recording” audio notification when pressing the button to let the users know when they could start giving commands. 

After the design review presentation, our group met again and went over the feedback together. Based on the feedback, we distributed the tasks by assigning each part of the design report to different group members. 

Design Changes

An audio instruction will be added to the web app to guarantee that the users can know the standard commands in advance. A “help” command is introduced in all pages of the web app so that the users could trigger the audio helper at any time. 

A “start recording” and “end recording” audio notification should be added each time the button is pressed. This ensures that the visually impaired groups could know when they can input vocal commands and when to stop. More details of the implementation will be included in the design report. 

Updated Schedule

The primary focus for next week is the design report. Each section of the report is assigned to one or more group members and should be reviewed before submission.

Yuxuan’s Status Report for 2/24

Progress

This week I reviewed and discussed with my team all the feedback on our design presentation and made note of what we need to address in our design report. I also came up with an initial outline for our design report and divided up the work with my teammates.

I also started working on our web app development by defining our models and forms. I also built the basic pages in html. The next thing is to put the pages together in views.py.

 

Schedule

I am a little bit behind schedule due to midterms, but I will catch up next week.

 

Next steps

Next week I will focus on writing the design report with my team. I will be responsible for design requirements, part of design trade studies, test, and project management sections. I will also continue with linking our web app pages.

Yuxuan’s Status Report for 2/17

Progress

This week I discussed detailed control flow of our app with Tianyi and came up with the model-view-control (MVC) framework for our Django app.

Models:

Expense:

  • Time: DateField
  • Amount: FloatField (two decimal places)
  • Description: CharField

Category:

  • Name: CharField
  • Color: CharField
  • Expense: ManyToManyField

Main pages (html files):

  • html (with tabs at bottom and audio input button to be extended by other pages)
  • Home (contains a form to enter a new spending entry)
  • Spendings (list of entries)
  • Financial report

Some main controls in view.py:

  • Home_action (render home page)
  • Create_entry
  • Generate_report
  • Modify_entry
  • Add_category
  • Read_report

To prepare for the design presentation next week, I specified the testing process with input, expected output, and  expected result. I also updated the schedule based on changes in implementation design and created a product picture showing the hardware components we use.

Schedule

I am on schedule.

Next Steps

Next week I will start building our web app by setting up the three main pages and work towards a complete money tracking app without audio input first. I will also work on the design report and set up the Raspberry Pi with the team if we can receive the necessary components next week.

 

Lynn’s Status Report for 02/17

Progress

After the weekly meeting with the instructor and TA, our team started to work on finalizing the design details. Our team discussed a lot about further design choices and tried to answer the “why” question about those choices. My primary focus was on the completed version of the front-end UI and the finite state machine diagram of the user interaction flow chart. After that, Yuxuan and I worked together to specify the MVC design of the web application from both an ordinary user’s and a visually impaired user’s perspective. 

To prepare for the design review presentation next week, I read through the documentation of spaCy and word2vec to gain a further understanding of the NLP process. 

A copy of the finalized UI and FSM is attached.

 

Schedule

I am on schedule.

Next Step

As the presenter of the design review, I would first finish the presentation during Monday’s or Wednesday’s class. After that, I will start working on the primary microphone setup since the hardware components ordered last week have arrived.

Team Status Report for 02/17/2024

Risk Mitigation

We chose spaCy as our NLP model for parsing the text and we chose to use word2vector for classification. Our team began to learn to use these libraries and wanted to see if these two libraries could give us the desired accuracy.

In addition, we also have a basic design of UI, which would be more difficult than we expected. Therefore, we may begin to look into that part earlier. This problem can be solved if we spend more time on it.

For the hardware part, we need to power our system. Therefore, when the hardware arrives, we may need to use a battery to power our system.

Design Changes

  1. we would use a Raspberry Pi monitor for display. (used to use phones/laptops)
  2. Decided to use PyAudio for translating speech to text
  3. UI design becomes more specific

Updated Schedule

We begin to look at UI earlier (we will begin UI design on 2.18 in the schedule, but we began to look at it last week). In addition, we also order our hardware earlier than planned. For next week, we would begin to run the NLP model, construct the Webapp UI, and have our hardware constructed.

This Week Special

A was written by Yuxuan, B was written by Tianyi and C was written by Yixin.

Section A:

Public health:
Our product is an easy-to-use tool for money tracking. It allows the user to view a detailed list and an analysis of their expenses and can thus eliminate the user’s anxiety of potential overspending. With a healthy spending habit, people are well-prepared for financial emergencies since they can save money by carefully planning their spending based on their needs. All the benefits can be achieved with little effort due to the audio input functionality and portability of our product, so the users are more likely to form a habit of money tracking, and the records on the web app can reflect their true spending more accurately.

Safety:
Our product is safe to use in terms of user privacy. We use Raspberry Pi as our web server so that the web application does not connect to the internet, preventing potential attacks or hacking. User data is stored in a local database so that only the owner of the product can access the stored information. In addition, we can configure the Raspberry Pi so that the user can lock screen and unlock with their own password. If the product is lost, it cannot be unlocked by others, which prevents potential information leakage.

Welfare:
Our product fulfills the need of people who want to stick to their budget and form good spending habits. It helps people cut unnecessary expenses and focus more on certain categories of spendings. With clear financial goals and strategies, people can better identify and achieve their own needs, which are crucial indirect benefits our product provides.

Section B:

One of the major purposes of our design is to benefit visually impaired people who have the requirement of daily money tracking. To guarantee that the design can be used effortlessly without vision, audio input and output assistants are integrated within the money-logging application. The design would also enhance the user experience for common customers because they could manage their wealth more beneficial via voices. That is to say, our design not only takes the special needs of minorities into account but is also willing to improve the financial management experience for the general public.

Section C:

The production cost of our app would be low. One of the reason should be that we would use Rasberry Pi, which is much cheaper than a smartphone. On the other hand, we would have a local web app, we do not need to purchase licenses.

Although we are trying to lower the price of our product and our product do have many features (e.g. voice input) that other money tracker app does not have, we still cannot ensure customers would buy our products. One of the biggest strength of exisiting apps is that these apps are free. Therefore, we may need to make a survey about how much customers would likely to pay for better user experience.

Yixin’s Status Report for 02/17/2024

  • What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

One of the main tasks for this week is the design presentation. I will not be the presenter this time, but I have also worked on preparation for this presentation. As for the proposal presentation, I also revised the use case and use case requirements for this presentation.  I simplified the use case to leave more time for later parts (which are more important to the design review) and I revised the use case requirements based on our new plan (a Raspberry Pi monitor).

In addition, I spent time studying PyAudio, and I think I now know how to translate Audio to text but need to test it when our device arrives. I also learned how to use spaCy, downloaded it on my computer, and ran some simple tests to understand specific attributes of this library.

  • Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

on schedule

  • What deliverables do you hope to complete in the next week?
  1. finish design review report
  2. choose the database use to train our model

Lynn’s Status Report for 02/10

Progress

The primary focus for this week is the proposal presentation. Although I am not the presenter this time, research on the technical challenges and corresponding solution approaches is still my major effort. For the audio input section of our design, signal processing libraries including PyAudio, PyPi noisereduce module, and SpeechRecognition should be utilized to reduce noise and transfer audio to text strings. Natural language processing models such as spaCy and pre-trained BERT model are then considered to recognize user commands and categorize the purchased items. I designed a general block diagram from user input to all expected components and the various forms of output financial reports.

After the proposal presentation, I started to design the layout front-end UI of our web application. A primary draft is attached. 

 I also researched the usability of the spaCy library to identify and match the user commands to specific functionalities. The Tokenizer and Matcher in the library should be utilized, and I wrote several Python scripts to further familiarize myself with spaCy. 

Schedule

I am on schedule.

Next Step

I will first focus on finalizing the design of front-end UI the next week, and our team will design the MVC framework of the web application together. I will also continue working on researching and implementing the NLP models.

Team Status Report for 2/10

Risk Mitigation

For now, we focus on selecting the most suitable NLP model for parsing the text and classifying the item name, which is critical for correctly generating the entry, a key feature of our product. We compared across models for matching commands, identifying elements, and classifying words and settled on spaCy and word2vec for these tasks. There are also backup libraries if the selected ones don’t work out. We will start working on spaCy and word2vec next week to make sure they work as expected before the design presentation.

Design Changes

We replaced random forest model with word2vec for classifying item names because random forest requires feature engineering and is thus more suitable for classifying whole sentences or paragraphs. We will reflect this change on our block diagram for the design presentation/report.

Updated Schedule

No updates to the schedule. Next week we will address the comments on our proposal presentation provided by TAs and peers, discuss hardware order requests with faculty, design MVC framework for our Django web application, and run tests for every model/library we want to use as part of the speech recognition/NLP process on our laptop before the design presentation.

Yuxuan’s Status Report for 2/10

Progress

The week I did proposal presentation for my team on Monday. In preparation of that, I was responsible for testing, division of labor, and schedule parts of the presentation, and I discussed all other parts with my teammates.

Later this week, I researched and made a list of all hardware components we need to order or borrow from the ECE inventory. I chose Raspberry Pi 4 Model B 4GB RAM as our single board computer along with all the accessories compatible with RPi 4. After discussion with team, we decided to order a touch screen with speaker for RPi display and a USB microphone for audio input. I filled out the request forms for all components.

I also looked into the model for classifying product name to categories: our original approach was using random forest, but with further investigation I found that random forest might not be best suitable for the task; instead, we now want to use the word2vec model to group similar or related words together, so that if initially given the classifications of some sample words, the model is able to map new words into correct categories based on the distance between new words and the sample words in the vector space.

 

Schedule

I am on schedule.

 

Next Steps

Next week I will focus on testing out the viability of our selected NLP models on the laptop with my team. We will also design the MVC framework for our webapp as well.

Yixin’s Status Report for 02/10/2024

  • What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week is about the proposal presentation. I write the script and construct the slides for user case and user case requirements. Create the GitHub repo for the web app. Meet with the group, decide which equipment to order, and submit the forms. In addition, we also decide which ML models we are going to use.

  • Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

on schedule

  • What deliverables do you hope to complete in the next week?
  1. finish homepage + css of the Django project
  2. help to run simulations of our current ML model with teammates and decide if the current model is optimal or if more research is needed
  3. May set up the hardware (depending on whether we receive the ordered equipment)
  4. prepare for the design presentation