CS373: Software Engineering



Project #2: IDB1


Specification


  • Create a cross-platform, responsive, Web app that emulates IMDB to provide helpful information about some topic.
  • The project must meet several criteria.
    • must be unique, first come, first served
    • must have at least three data sources that can be programmatically scraped (at least one must be a RESTful API)
    • must promote civic engagement about an underserved community
    • must have at least three models
    • each model must be connected to at least two other models
    • every instance of each model must be rich with different media (e.g., feeds, images, maps, text, videos, etc.) (be very sure about this)
  • This is a group project with four phases and only one public repo will be used across all phases.
  • The group must collaborate using:
  • For the purposes of grading, do not change the production website between the time that you submit it and the time that it is graded.

Submission


  • create a public code repo, https://gitlab.com/GitLab-ID/cs373-group-N/
  • enable issues here: Settings -> General -> Visibility, project features, permissions -> Issues
  • create issue labels here: Manage -> Labels (labels are case sensitive)
  • create issues
  • add and close new issues as you debug and develop your solution
  • provide your GitLab URL on the Canvas assignment

AI Report


  • Summary of AI Interactions
    • List the tools used (e.g., ChatGPT, Copilot, etc.).
    • Debugging help (error explanation, bug location, runtime issue)
    • Conceptual clarification (CS concept, syntax, algorithm idea)
    • Code improvement (style, efficiency, readability, testing)
    • Alternative approaches (asking “is there a simpler way?”)
    • Other (describe)
  • Reflection on Use
    • What specific improvements to your code or understanding came from this AI interaction?
    • How did you decide what to keep or ignore from the AI’s suggestions?
    • Did the AI ever produce an incorrect or misleading suggestion? How did you detect that?
  • Evidence of Independent Work
    • Paste a before-and-after snippet (3–5 lines max) showing where you changed your own code in response to AI guidance.
    • In 2–3 sentences, explain what you learned by making this change.
  • Integrity Statement
    • "I confirm that the AI was used only as a helper (explainer, debugger, reviewer) and not as a code generator. All code submitted is my own work."
  • put it on GitLab as a IDB.ai.md

Phase I


  • provide at least five user stories to your developer and put them on their GitLab issue boards with the Customer label
  • collect data on three instances of each model (at least one must be a RESTful API)
  • design a RESTful API using Postman
  • create a static website with at least 14 pages hosted on Amazon Web Services (AWS)
  • It is your responsibility to not outspend the free credits on either of those systems.
  • your site must support https
  • derive the stats on the About page, dynamically, from GitLab
  • use Bootstrap or something similar as a CSS framework
  • obtain a pretty URL from a hostname provider (e.g., Namecheap).
  • write a technical report using Grammarly and put it on GitLab as IDB.tr.md

Pages


Page Features
Navbar

every page

  • Splash
  • Model #1
  • Model #2
  • Model #3
  • About
Splash

one page

  • make it beautiful (e.g., a slideshow)
  • with a way to navigate among the pages
  • with useful introduction to the site
Models

three pages
one for each model

  • grid of cards
  • each card must have unique image
  • at least five attributes on each card
  • attributes must be filterable and sortable
  • page must show total number of instances and pages
  • cards link to those instances
Model #1

three pages
one for each instance

  • data
  • external links
  • embedded images (e.g., Google)
  • embedded videos (e.g., YouTube)
  • embedded maps (e.g., Google Maps)
  • embedded social network feeds (e.g., Twitter)
  • must have at least two of the above media
  • links to Model #2
  • links to Model #3
  • reuse instance formatting between models, if you can
Model #2

three pages
one for each instance

  • data
  • external links
  • embedded images (e.g., Google)
  • embedded videos (e.g., YouTube)
  • embedded maps (e.g., Google Maps)
  • embedded social network feeds (e.g., Twitter)
  • must have at least two of the above media
  • links to Model #1
  • links to Model #3
  • reuse instance formatting between models, if you can
Model #3

three pages
one for each instance

  • data
  • external links
  • embedded images (e.g., Google)
  • embedded videos (e.g., YouTube)
  • embedded maps (e.g., Google Maps)
  • embedded social network feeds (e.g., Twitter)
  • must have at least two of the above media
  • links to Model #1
  • links to Model #2
  • reuse instance formatting between models, if you can
About

one page

  • description of the site, its purpose, its intended users
  • the group members
  • for each member
    • name
    • photo
    • bio
    • major responsibilities
    • no. of commits
    • no. of issues
    • no. of unit tests
  • stats
    • total no. of commits
    • total no. of issues
    • total no. of unit tests
  • data
    • links to the data sources
    • description of how each was scraped
  • tools
    • tools used
    • describe their use
    • special focus on optional tools that were not required
  • a link to the GitLab repo
  • a link to the Postman API

Rubrics


Assets Points
1. Build Files
  • .gitignore
  • .gitlab-ci.yml
  • makefile
  • README.md
    • name, EID, and GitLab-ID, of all members
    • Git SHA
    • project leader
    • link to website
    • estimated completion time for each member (hours: int)
    • actual completion time for each member (hours: int)
    • comments
10
2. Issues
  • you must use issue labels (e.g., Backend, Customer, Frontend, Grader, etc.)
10
3. User Stories 10
4. RESTful API 10
5. Website 10
6. About Page
  • description
  • members
  • stats (automated)
  • data sources
  • tools
  • GitLab URL
  • Postman URL
10
7. Model Pages
  • three pages
  • grid of cards
  • three cards on one page
  • each card must have unique image
  • five attributes for each card
10
8. Instance Pages
  • nine pages
  • lots of text
  • embedded multimedia
  • links to other instances of other models
10
9. Technical Report
  • IDB.tr.md
  • motivation
  • user stories
  • RESTful API
  • models
  • tools
  • hosting
  • the audience comprises other software developers, as opposed to users
  • format the report clearly, attractively, and consistently, using good sections, multiple pages, good headers, figures, and grammar
  • Grammarly
10
10. AI Report
  • IDB.ai.md
  • Grammarly
  • summary, reflection, evidence, integrity
10

Copyright © Glenn P. Downing, 2008-2026
Updated 4 Feb 2026