CS373: Software Engineering

Spring 2018: 51625 & 51630



Project #3: IDB2
Due: Thu, 22 Mar 2018, 10pm
85 pts, 8.5% of total grade.


Specification

Create a Web app that emulates IMDB to provide useful information about some topic.

The data presented must be the integration of disparate data sets to reveal some interesting result.

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 using a RESTful API
  • must have at least three models
  • each model must be connected to at least two other models
  • every instance of each model must have some kind of multimedia (i.e. image or video)
  • every instance of each model must be rich with different content (e.g. descriptions, feeds, maps, multimedia (above), etc.)

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.


Phase II


Tutorials


Pages

Page Features
Navbar

every page

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

one page

  • carousel
  • make it beautiful
  • with a way to navigate among the pages
Models

at least three pages
one for each model

  • grid of all of the instances of that model
  • with at least nine instances per page
  • with at least three attributes of that model, showing
  • with links to those instances
Model #1

many pages
one for each instance

  • data
  • external links
  • embedded images (e.g. Bing, Flickr, Google)
  • embedded videos (e.g. Bing, Google, Vimeo)
  • embedded maps (e.g. Google Maps)
  • embedded social network feeds (e.g. Facebook, Twitter)
  • links to Model #2
  • links to Model #3
Model #2

many pages
one for each instance

  • data
  • external links
  • embedded images (e.g. Bing, Flickr, Google)
  • embedded videos (e.g. Bing, Google, Vimeo)
  • embedded maps (e.g. Google Maps)
  • embedded social network feeds (e.g. Facebook, Twitter)
  • links to Model #1
  • links to Model #3
Model #3

many pages
one for each instance

  • data
  • external links
  • embedded images (e.g. Bing, Flickr, Google)
  • embedded videos (e.g. Bing, Google, Vimeo)
  • embedded maps (e.g. Google Maps)
  • embedded social network feeds (e.g. Facebook, Twitter)
  • links to Model #1
  • links to Model #2
About

one page

  • description of the site, its purpose, its intended users
  • explanation of the interesting result of integrating disparate data
  • the group name
  • 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 GitBook report
  • a link to the GitHub repo
  • a link to the Travis CI log
Total

many pages


Groups

Read Effective Team Collaboration.

The groups have been set up on Canvas.

Pick a project leader for the group.

There will be a different project leader for each phase.

A group member can only be project leader once.


Submission

Below, GitHubID is always that of the owner of the repo.


Repos

These are the URLs involved:


Rubrics

https://github.com/GitHubID/idb/

Points Assets Notes
5 pts
  • GitHub issue tracker

Quality of the issues.

  • at least 10 more closed issues, 15 total
5 pts
  • GitHub project boards

Quality of the user stories

5 pts
  • frontend/index.js
  • backend/main.py

Quality of the code.

5 pts
  • frontend/tests.js

Quality of the frontend code tests.

  • create unit tests of the code
  • use Mocha
5 pts
  • frontend/guitests.py

Quality of the frontend GUI tests.

  • create acceptance tests of the GUI
  • use Selenium
5 pts
  • backend/tests.py

Quality of the backend code tests.

  • create unit tests of the code
  • use unittest
5 pts
  • Postman.json

Quality of the API tests.

  • create unit tests of the API
  • use Postman

https://www.website.me
https://api.website.me

Points Assets Notes
15 pts
  • website

Quality of the website

  • collect data on many instances of each model from at least three sources via a RESTful API
  • identify common attributes of the data and insure that every data item has a value for that attribute
  • exhibit an interesting result from integrating disparate data
  • use Amazon Web Services (AWS)
  • many pages (see above)

https://GitHubID.gitbooks.io/api/

Points Assets Notes
5 pts
  • GitBook API Documentation

Quality of the API

  • document a RESTful API
  • think carefully about the types and format of the requests and responses
  • use Postman

https://GitHubID.gitbooks.io/report/

Points Assets Notes
15 pts
  • GitBook Book & Manual

Quality of the technical report

  • motivation
  • use cases
  • RESTful API
  • models
  • pagination
  • DB
  • testing
  • 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
  • use Grammarly
5 pts
  • GitBook Book & Manual

Quality of the self critique

  • What did we do well?
  • What did we learn?
  • What can we do better?
  • What puzzles us?
5 pts
  • GitBook Book & Manual

Quality of the other critique

  • What did they do well?
  • What did we learn from their api / website?
  • What can they do better?
  • What puzzles us about their api / website?
5 pts
  • GitBook Book & Manual

Quality of the UML diagram


Peer Review

  • In the Ungraded assignment group on Canvas, there is an assignment, Project #3: IDB2: Peer Review.
  • Complete that assignment.
  • In it you will peer review all of your teammates.