CIS4339 Fall XXXXXXXXXXProject Description1CIS4339 Fall XXXXXXXXXXProjectDescriptionSynopsisYour team has to take over a web application development project. The overall goal is to expand...

I need help with making some updates to Sprint 2 and completing Sprint 3 of my project.


CIS4339 Fall 2022 - Project Description 1 CIS4339 Fall 2022 - Project Description Synopsis Your team has to take over a web application development project. The overall goal is to expand the original project, fix some issues and create missing documentation. You will have to assess existing code and NOT start an application from scratch. The application is following a standard full-stack architecture using the MEVN stack (MongoDB, Express, VueJS, Node). The project will be executed as a group project. You will be assigned to a team by the instructor. NOTE This application doesn’t have a security layer (no login and roles etc.) and you are not supposed to implement one! Background A team of students has developed a basic dataplatform for a non-profit organization in the Houston area. In general, the organization wants to help clients with basic needs (e.g. receiving food aid or help with adult eduction). The end users for the application are Community Health Workers (CHWs) who work at the non-profit with those clients. CHWs want to understand how to help their clients but also want to make sure that the organization can plan resources. They enter information about a new client in the "Intake Form". Events can be created. Existing clients and events are listed in a separate views. Furthermore, CHWs can "sign-up" clients for events. A demo of the current project (with read access only) can be found at https://salmon-island- 0f7c5280f.1.azurestaticapps.net. Getting started The existing project code will be provided to you in a GitHub repository. This repository will be created when your team creates their group in GitHub classroom. Use the instructions provided in BB for more details. https://salmon-island-0f7c5280f.1.azurestaticapps.net/ 2 Requirements a. The main goal is to extend the application so it can be used by multiple organizations. The key is consolidation at the data level and data for all organizations should be stored in one SINGLE database. The idea is that there will be multiple instances of the application - one instance per organization. An instance should be configurable via an environment variable that sets up the instance. When the front-end of the instance connects to that backend it will be used only for that organization (see architecture drawing). Your solution must be based on a collection in the central DB that holds organization information (only name is a required field). The creation of data for this collection in the DB will be done manually and not through the app. You decide how you design the association of client and event information with an organization. The backend code will have to be updated accordingly. The only visible change in the frontend should be a dynamic replacement of the "Dataplatform" with the actual name of the organization provided via the API, e.g. 3 Currently, the application is missing any delete functionality. You must implement a hard delete for the intake form data and events data as new routes in the backend. You also must add delete functionality into the front-end interface. c. Improve the dashboard page. A graph should show how many clients signed up for each event that was scheduled for the last 2 months. There should be also a table showing the same information. d. Improve how errors are shown from the backend. The front-end currently only logs backend errors in the console. For instance, when users try to add a client to an event for which a client is already signed up, a message should be shown. You will work on those requirements in 4 Sprints (see below). Each deliverable for the project is due at midnight of the listed due date. No late submission will be accepted. Sprint 1: Group - Document and extend existing Database Design for the application - Deadline September 15, 2022 The documentation for the existing database has been lost. Your task is to create documentation of the existing database design for MongoDB to effectively support future designs. Your team must assess the existing data model implementation in the backend code first. After initial documentation your team must extend the database design so that the application can be be used by multiple organizations (see requirement a) above). Your submission will be a detailed Database design document (pdf). This document must describe a schema based MongoDB design for the client and event data and how they are linked together. It also has to contain the expansion for the organizations. There is no formal schema language or diagram format that has to be used (suggested format: https://docs.mongodb.com/manual/core/data-model-design/). It is important however, that you explain your thoughts in the document that you are going to submit. Why did you choose a certain way to model the organizations as association between collections (embedding vs. linking/reference)? Please remember that you design a NoSQL database! You will be allowed to make changes to your database design but the original grade received won’t change. Sprint 2 Group - Expansion of Backend API - Deadline October 6, 2022 The second sprint focuses on the implementation of the extended backend, setup of the MongoDB and the additional functionality of the API services according to the above listed requirements. These services need to be implemented using MongoDB, Express and Node and have to be integrated with the existing backend code. You will be testing your extended code without the need to have the pages implemented that make up the web-based user interface for the app. In addition to the code you are required to submit API documentation for the complete backend (not just the extensions). Your documentation must be be written in github markdown and be part of the backend GitHub repository. For an example of API documentation written in GitHub markdown, see https://github.com/Medium/medium-api-docs#2-authentication (you will not need Part 2 - Authentication). https://docs.mongodb.com/manual/core/data-model-design/ https://github.com/Medium/medium-api-docs#2-authentication 4 You will find an additional document in BB that shows how you can use Postman to generate your documentation. Your team will only have to submit the link to your github repo in Blackboard for Sprint 2. Do not forget to comment and document your references in code. It is highly recommended that you setup a cloud based MongoDB instance (e.g. https://www.mongodb.com/atlas) for your group as it will make the development process much easier. Please submit a Mongo URL string in BB (don’t put it in GitHub). Sprint 3 Group - Design and Implementation Frontend - Deadline November 17, 2022 The third sprint focuses on the UI development in JavaScript using VueJS. Code submissions will happen into the same repository on GitHub Classroom. Do not forget to comment and document your references. For Sprint 3 you will have to implement the front-end extensions as described in the requirements. You have to integrate your extensions into the existing front-end implementation. Part of the submission for Sprint 3 will be a 10-15 minutes long group presentation video, highlighting the new features, and explaining the solution in detail. NOTE Changes to backend due to front-end development You are allowed to make changes to your code base for the backend after the Sprint 2 deadline has passed. We will however grade the version that was submitted originally for Sprint 2. https://www.mongodb.com/atlas 5 Details for the Github setup (to be used for submission in Sprint 2 and 3) We are using Github Classroom to setup the remote repo for this assignment. The link to accept the assignment and create the private GitHub repo will be posted in Blackboard. Accept the link and an empty GitHub repository will be created for your team. Since this is a group assignment, you will be asked to join/form a team in GitHub classroom. There are three common cases, and you will have to follow one of them: a. There are no groups yet. You need to enter the name of a new group (following the group formation table provided in Blackboard) to create it. b. There are one or more groups already formed. You need to click on the existing group that you should join (see group formation table). c. Your group is not listed yet. You need to enter the name of the new group to create it. Sprint 4 Individual - Peer Evaluation - Due December 1, 2022 As part of this assignment, you will need to evaluate 2 of your classmate’s projects. The github repositories of all teams will be made available to you after Sprint 3 has finished. There will be a detailed rubric provided for how to evaluate the project code and presentation. This asignment will open up with all details right after the deadline for Sprint 3. Other Requirements Make sure your project compiles and runs locally and the github README provides instructions for local setup. If the project doesn’t run, you will forfeit points. What to Turn in Commit your source code (properly commented) to your private repository in the Github classroom. Do not zip the files together. The github repository must show multiple meaningful commits for each of the team members that will be used to judge individual contributions of each team member. There will be 4 assignments listed in Blackboard - one for each Sprint. a. For Sprint 1, your team must submit a document (pdf) via Blackboard. b. For Sprint 2 submit the link to your github repository containing your project via Blackboard. 6 For Sprint 3 submit the link to your video presentation. Video MUST be uploaded into MS Stream and accessible for everyone in our class team. d. The peer-evaluation will be done in TEAMMATES (details posted in BB after the end of Sprint 3). IMPORTANT Please make sure your team agrees on procedures and setup of branches etc. to support a productive development process. We have discussed one workflow example in class. You are not required to follow it. However, for grading we will only check the main/master branch in the repository setup via Girhub Classroom. The deadlines for this project are not flexible since we need to allow for enough time for the peer-evaluation and grading. Extra Credit You can earn extra credit if you are able to deploy the complete or parts of the application (DB, backend code and front-end code) into the cloud. Do not attempt deployment of the backend/frontend until you have finished the other parts of the project. We will grade you on the local deployment first! (Make sure the username and password for the database you setup are credentials you’re willing to share. Do not use personal passwords for this homework, which you might be using anywhere else.) Please submit a short description of the deployment strategy/setup and credentials to connect to your cloud DB instance via BB to receive extra credit. Basic Grading rubric for the project Remember the whole project accounts for 35% of the overall grade in the class. All team members will receive the same points based on the assumption that a team has equally distributed commits for all team members and every team member contributed equally. The Peer-Evaluation points are given on an individual basis. 7 Item
Nov 14, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here