PROG3017 FullStack Assignment1
PROG3017 FullStack Assignment1
Prerequisites
Required Labs: Lab 1 (Learning MongoDB)
Summary
As the first step in developing what will be your own Full Stack application, you are
required to do the following in this assignment:
a. Conceive and model the data of your choosing (ie. something that interests you)
upon which you will build your simple application. Examples of entities might
include:
i. People
ii. Recipes
iii. Business Cards
iv. Online Technical articles
v. Automobiles
vi. Books
vii. Pets
etc…there is really no limit to what you can choose.
b. Choose which properties/fields your entity will contain.
c. Generate sample data based on your document.
d. Create your database in MongoDB (local and cloud instances) and import your
data.
Note: Don’t make your models too big! Keep it simple! Keep it to about half a dozen root-level
fields so that you can work with your models easily when coding your API and creating your
front-end user interface. Remember, you can always modify your data during the course of
building your application during the semester. So it does not have to be perfect from the
beginning.
The concept of an ERD does not go away when modeling data even for a Document Database
such as MongoDB as you will still want to track data and relationships. The big difference is
how you will implement the data relationships. The related data will either be nested in your
main document (as a sub document) or referenced from a second document collection. It is
highly recommended for this simple application that you make every effort to keep all of your
data in one collection. (ie. nested data).
Semester- Fall Year- 2024/2025 1 of 3
Assignment
You are free to choose what data you wish to work with, however as a basic starting point, your
document design must at the very least meet the following criteria.
Create and demonstrate your ERD using an available tool. Suggested: Hackolade (demoed in
class)
Generate between five and ten documents for your collection. You can do this manually, or by
using the available online JSON Generator utility (https://next.json-generator.com/
). Shape a collection of documents that will reflect your chosen design. You may have to modify
or tweak the data manually if the generator does not produce exactly the type of data you’re
looking to create. If you wish, you can research other mechanisms for generating your document
collection, or you can create the whole collection manually. This is not an exact science at this
point.
To begin development of your application’s API, you’ll need to import your generated data into
your local instance of MongoDB (in your Docker container). You will demonstrate your data as
part of this requirement.
There may come a time when you’d like to reset your data back to its initial state. In order to
facilitate this, create a backup of your data.
Resources:
JSON Generator
https://stoplight.io/blog/mock-json-generator/
Upon review of this assignment, you may be instructed to add or modify your
initial document model before proceeding with further work on your application.
Instructions
1. Don’t forget that a code review is a necessary part of this assignment. You will need to
show your code to the instructor in class on the due date while going through an
evaluation of the site’s functionality. You will need to explain how the code works and
complete the code review part of the rubric. You will need to do this to at least a
developing level (see the Note in the rubric below).
2. Late submissions will be subject to the late penalties laid out in the course outline.