Comp510 Project 4

Do Something interesting.


Due: May 6th 2024 in class and then code shared by 11:59pm

Summary: Now we will take all you have learned all semester and work on something larger.


Details:

Create a new project. Make sure it has your name in it somewhere in the project name.






For all projects: you must write at least three automated tests which run every time the you push to the github project. You don’t have to test every aspect of your program but the three parts that are tested should be properly tested (use table tests or other methods to make sure you test a wide variety of good and bad test data, including edge cases) We will cover automated tests next time.



  1. Project 1) write a gocv project which will query an online face recognition cloud api (such as https://luxand.cloud/ [this one allows 500calls/month at the free trial]) to identify the face in the video, At this point put a little label in a filled rectangle above the face much like the character name floating over the character’s head in a video game. When you demo it to me, pretrain the face recognition on faces you have available. In your readme, explain how I should setup the training data myself to test it.

  2. Project 2) Write a microservice. Build an API driven site that you host yourself (you can’t use something like rapidapi to host it but you can use the go built in libraries). Your program needs to read the “games-features.xlsx” file. Design a simple API which will allow users to search on a game and will return the game’s database entry as a json response. Then write an application that will query this API site and display the data in a graphical interface.

  3. Visualize Job data: write a go program which will query the google jobs api using the serpapi service eg: https://serpapi.com/playground?engine=google_jobs&q=Software+Developer. You can limit your results to 5 pages, your free account allows 20 searches per month. Once you have the data downloaded and saved in a usable format (I suggest putting it into a database so you don't use your free credits), build a map showing where the jobs are, color coding the pins to better visualize where there are lots of jobs. Also display a select-able list of the jobs. Allow an option to generate a new map with just the jobs selected in the list displayed.
  4. Project 4) if you have a project idea you are dying to try instead. Propose it to me. I want this to be a substantial project that pushes you into new territory a little, but I don’t want to push you too much into brand new stuff. If you have some area you are already exploring that you think you’d love to spend  weeks on, then send me an email  message and we can discuss it.   


Submitting the project.

You will present your project during the final period then submit the project by putting it on github and sending me a collaboration invite. As before.