CS257 Software Design Wednesday, 9 April 2025 + Next - Project overview - What makes teams work and not work? - Getting started with your project teams - Projects - Look at possible datasets - Assignment (due Friday): submit your team's top two dataset ideas - Assignment (due Monday): project proposal - Test-driven development - What is it and why do we care? - Lab (due Thursday) + Overview of the big project - Full-stack architecture - Database (using postgresql) - API (written in python using Flask) - Web endpoints to deliver pages - HTML, CSS, Javascript - Activities - specify requirements - mockup user interface - design and implement database - design and implement API for accessing the data - design and implement page structure - user testing, code reviews, and revisions - ... - Dataset attributes - at least two different ways of searching or interacting with the data - something interesting - Example datasets - Good: animal species in US National Parks search by animal name, animal category (bird/insect/...), latin name, park display on map or in lists as appropriate - Good: movies (or songs, or books,...) - Good: historical weather data (but can sometimes be not granular enough) - Good: women's healthcare facilities - Good: Pokemon or Magic cards - Good: voting data if it's granular enough; state totals for a single race not so interesting - Good: sports statistics - Bad: this weird UFO dataset some students used a few years ago; all the content was dates plus prose descriptions of incidents - Meh: recipes are really hard to deal with when you're learning all this other stuff like the UFOs, the bulk of a recipe is in a prose description (in most datasets, anyway) + What makes an effective team? - Respect your teammates - Clear goals - Communication - getting shared understanding - speak up when something is going wrong - decide which communication medium you're using and read and respond promptly - make a plan for getting stuff done - Reliability: if you say you're gonna do it, you do it - be respectful of your teammates' time - show up on time - negotiate meetings and deadlines in good faith - [rare but destructive] avoid doing other people's work for them - distributing work fairly + Meet your team - Hi, who am I? who are you? - What kind of data are we interested in? - Look at the websites-of-data together + Test-driven development - Overview - Lab