Andy 2/8 report

  • Discussion on System Design and Hardware Finalization
    • I worked with the team to finalize the system architecture and determine how data flows between the dashcam, backend, and law enforcement web portal. We discussed the core functionality of the system, which includes adding license plates to a watchlist, receiving real-time alerts when a match is found, and allowing law enforcement to view details such as image, GPS location, and timestamps.
    • As part of the hardware selection process, we discussed the performance of different boards to perform YOLO detection and OCR on accurate license plate recognition and their latency for performing these tasks.
  • Learning & Developing with Node.js, Express, React.js
    • I spent time learning and working with Node.js, Express.js and React.js with online resources about their flow and structures. I also learned to use these tech stacks by building a sample website including image uploading, location access, API communication functionality using these tech stacks.
  • Web app research. 
    • I conducted research on popular tech stack choices for building web applications, including Python Django, FastAPI, and Node.js with Express for backend development. I compared their performance, scalability, and ease of integration with real-time communication tools. After evaluating the pros and cons, I found that Node.js with Express.js is well-suited for our system due to its event-driven, asynchronous nature, making it ideal for handling multiple concurrent connections. Additionally, Socket.IO was chosen for WebSocket-based real-time push notifications, ensuring that law enforcement officers receive instant alerts when a match is found. However after discussion with Vicky and Christine, we found that any socket based real time notifications will need to maintain a list of all live communications between server and the frontends, which is not scalable and very difficult to deal with session reconnection and authentication. Thus we decided to utilize the amazon SNS email notification service to send an email to the web portal of law enforcement departments including a link for them to log in and check the matched report. This will make the notification in real time and does not need to maintain a huge number of live socket communication. It would be a pub-sub based service where individual police will “subscribe” the license plate they are watching and our server will send email to all “subscribers” upon a match for a license plate. 
    • For the frontend, I explored different UI frameworks, including raw HTML/CSS and React.js, and concluded that React.js with TypeScript would be the most scalable and maintainable choice. React’s component-based architecture enables efficient development, and TypeScript adds type safety, reducing potential runtime errors. To enhance the UI, we selected Ant Design for a clean, professional look.
    • For security and authentication, we agreed to use JWT-based authentication for user login and authorization, ensuring secure access to watchlists after discussion. 
  • By next week, I hope to finalize the technology block diagram for the website including backend service and frontend and be able to integrate together with the block diagram of the dashcam system and server system. Also, I should work together with Vicky to finalize hardware selection and finish ordering parts so we can start to wait parts and build the dashcam embedded system. 

Leave a Reply

Your email address will not be published. Required fields are marked *