CS 373: Software Engineering



Project #2: IDB1


  • Due: Wed, 30 Sep, 11:59 pm
  • 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.

Groups


  • CATME will create the groups.
  • The TAs will set up groups on Canvas.
  • The TAs will set up channels on Discord.
  • Pick a different project leader for each phase.
  • You will peer review each of your teammates on CATME.

Phase I


  • provide at least five user stories to your developer and put them on their GitLab issues 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 https://about.gitlab.com
  • use Bootstrap or something similar as a CSS framework
  • obtain a pretty URL from a hostname provider (e.g., Namecheap).

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
  • cards to Model #2
  • cards 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
  • cards to Model #1
  • cards 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
  • cards to Model #1
  • cards 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
  • 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


Name Description Points
Estimation
  • estimate and track time to completion
GitLab
  • create a public code repo (https://gitlab.com/GitLab-ID/cs373-collatz/)
  • give the TAs Developer access
1. GitLab Issues
  • enable issues here: Settings -> General -> Visibility, project features, permissions -> Work Items
  • create the following issue labels here: Manage -> Labels (labels are case sensitive):
    • build_files (Blue-gray)
    • unit_tests (Green-cyan)
    • restful_api (Crimson)
    • acceptance_tests (Dark sea green)
    • website (Titanium Yellow)
    • continuous_integration (Carrot orange)
    • documentation (Lavender)
    • ai_design (Dark coral)
    • ai_criteria (Dark coral)
    • customer (Deep violet)
  • create at least 30 issues with the above labels from these rubrics
  • create at least 5 more issues for bugs and optimizations
  • close all issues as you develop, debug, and optimize the solution
5
2. Build Files
  • .gitignore, ignore everything but the files listed in these rubrics
  • .gitlab-ci.yml
  • Makefile
  • README.md
5
3. RESTful API 10
4. Splash Page
  • custom domain namne
  • navbar
  • https://www.website.me
  • Amazon Web Services (AWS)
  • It is your responsibility to not outspend the free credits on either of those systems.
10
5. About Page
  • description
  • members
  • stats (automated)
  • data sources
  • tools
  • GitLab URL
  • Postman URL
  • https://www.postman.com
  • https://www.website.me
15
6. Model Pages
  • three pages
  • grid of cards
  • three cards on one page
  • each card must have a unique image
  • five attributes for each card
  • https://www.website.me
15
7. Instance Pages
  • nine pages
  • lots of text
  • embedded multimedia
  • links to other instances as cards (exactly like in the model pages)
  • https://www.website.me
15
8. Documentation
  • create inline comments
  • run git log to produce IDB1.log.txt
  • run git rev-parse HEAD to produce a Git SHA
  • README.md
    • Full Name
    • EID
    • GitLab ID
    • GitLab URL
    • GitLab Pipeline
    • Git SHA
    • Estimated completion time
    • Actual completion time
    • Comments
5
9. AI Design 20
Submission
  • create a single PDF of README.md and DESIGN.md
  • submit that PDF to Canvas

Copyright © cs373, 2008-2026
Updated 15 Sep 2026