Project | CMSC 240 Software Systems Development - Fall 2024

Project: C++ REST API

Project Description

This project aims to provide hands-on experience in designing and implementing a REST API using the Crow framework, a high-performance C++ micro web service framework. Teams will have the creative freedom to propose their own REST API ideas.

This project presents an opportunity for teams to creatively explore API development, leveraging the power of C++ and Crow, while also emphasizing the importance of design, testing, and documentation in software development.

Instructions

  1. Complete all of the work in a Group GitHub repository: https://classroom.github.com/a/lECSpnJu
  2. Name your group using a combination of the first names of the group members.

Team Formation

Team Size:

Roles and Responsibilities:

Part 1: Team Creation and Proposal

Due: Friday November 8th

Task:

Deliverable:

Part 2: Design Document Creation

Due: Friday November 15

Deliverable:

Part 3: Implementation

Due: Friday December 6th

Requirements:

  1. The implementation shall have a minimum of four classes.
  2. The implementation shall demonstrate a minimum of one instance of composition.
  3. The implementation shall demonstrate a minimum of one instance of inheritance.
  4. The implementation shall demonstrate a minimum of one instance of templates.
  5. The implementation shall save the resources to a file after the Crow app is stopped.
  6. The implementation shall read the resources from a file before the Crow app is started.
  7. The implementation shall include a Makefile with an all, clean, executable, and individual targets for each cpp file.

Deliverable:

Part 4: Unit Testing

Due: Friday December 6th

Deliverable:

Project Grading Rubric

Part 1: Team Creation and Proposal (Total: 5 points)

Clarity and Quality of Proposal (5 points)

Part 2: Design Document Creation (Total: 25 points)

Comprehensiveness of Design Document (10 points)

Use Case Descriptions (5 points)

List of Endpoints (5 points)

UML Diagram Quality (5 points)

Part 3: Implementation (Total: 50 points)

Implementation of Classes and Relationships (15 points)

Data Persistence (10 points)

Makefile and Build Process (10 points)

Functionality of REST API (15 points)

Part 4: Unit Testing (Total: 20 points)

Coverage and Depth of Testing (10 points)

Quality and Reliability of Tests (10 points)