Skip to content

This Cloud Application is designed to handle users, courses, assignments, and submissions using MongoDB as the primary data store.

Notifications You must be signed in to change notification settings

chungyu1108/CLOUD-APPLICATION-DEVELOPMENT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

This Cloud Application is designed to handle users, courses, assignments, and submissions using MongoDB as the primary data store. The system provides clear entity relationships, ensuring that data is organized, retrievable, and manageable in a logical manner. Below is a detailed breakdown of the data entities used in the system.

Data Entities

  1. User The User entity represents the individuals in the system, including students, instructors, and administrators. Each user is associated with a set of permissions based on their role.

Fields:

id (String): Unique identifier auto-generated by MongoDB. role (Enum {admin, instructor, student}): Denotes the permissions associated with the user. name (String): The user's full name. email (String): User's email address. password (String): Encrypted password for user authentication.

2. Courses

The Courses entity stores information about courses offered in a given term. Each course is linked to an instructor and a list of students.

Fields: id (String): Unique identifier auto-generated by MongoDB. subject (String): Subject of the course (e.g., "Computer Science"). number (String): Course number (e.g., "CS101"). title (String): Title of the course (e.g., "Introduction to Programming"). term (String): Term in which the course is offered. instructorId (String): ID of the instructor responsible for the course. students (Array[String]): List of user IDs representing students enrolled in the course. assignments (Array[String]): List of assignment IDs associated with the course.

3. Assignments

The Assignments entity stores information about tasks or homework assigned to students within a course.

Fields: id (String): Unique identifier auto-generated by MongoDB. title (String): Name of the assignment. courseId (String): Course ID to which the assignment is associated. dueDate (String): Due date of the assignment, formatted as YYYY-MM-DDTHH:MM:SS.

4. Submissions

The Submissions entity represents student submissions for a specific assignment. Each submission is tied to a particular student and assignment.

Fields: id (String): Unique identifier auto-generated by MongoDB. studentId (String): User ID of the student submitting the assignment. assignmentId (String): ID of the assignment associated with the submission. timestamp (String): The time the submission was made, formatted as YYYY-MM-DDTHH:MM:SS. grade (Float): Grade awarded for the submission. file (File): The uploaded file for the submission. Entity Relationships A User can be associated with multiple Courses, either as an instructor or a student. A Course can have multiple Assignments. An Assignment can have multiple Submissions, each associated with a different User. A Submission is uniquely tied to a User and an Assignment. Setup Clone the repository:

bash

git clone <repository_url> Install dependencies:

bash

npm install Set up the MongoDB database by configuring your environment variables in a .env file:

bash

MONGO_URI=<your_mongodb_connection_string> Run the application:

bash npm start

About

This Cloud Application is designed to handle users, courses, assignments, and submissions using MongoDB as the primary data store.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published