Skip to content

RavirajWadnerkar/SJSU-Canvas

Repository files navigation

Team Pi

Team Members

  1. Neel Desai - Sec 49 - 017436575
  2. Samarth Sharma - Sec 49 - 017103437
  3. Raviraj Wadnekar - Sec 48 - 017458935
  4. Mansi Vekariya - Sec 49 - 016996291

Instruction on running the frontend:

1: Clone the repository

2: Run cd my-app

3: Run npm install

4: Run npm run dev

Instruction for running backend

  1. cd backend
  2. pip install requirements.txt
  3. python3 server.py

Daily Scrum

Daily Scrum Google SpreadSheet Link

Daily Scrum Sheets also added as: Team-Pi-daily_Scrum.xlsx

Jira Board

Access Jira Board from here - to see work distribution

Work Distribution

Team Member Responsibilities
Neel Desai - Setting Up Jira
- Converting all required features to user stories
- Creating a boilerplate that can be used for the homepage for all roles
- A student should be able to see the courses they have enrolled in current and previous sem
- Students should be able to view their own scores for their enrolled subjects
- For one student generate enough mock data to demonstrate all features
- A student should be able to see the published assignments and quizzes for a course
- A student should be able to see the content of all the courses published
Samarth Sharma - Create UI Mock-Ups
- Admin should be able to see courses taught by faculty in the current and previous semester
- For One faculty generate enough Mock data to demonstrate all features
- Faculty should be able to post announcements
- Admin Should be able to assign a new course to a faculty member for the current semester
- Faculty should be able to assign grades to students enrolled in their course
- Students should be able to set profile information
- UML Component Diagram
Mansi Vekariya - Sign In Page: Build a login page, that verifies if a user is a Student, faculty or admin and, on successful login, redirects them to their respective dashboard.
- For one Admin generated enough Mock data to demonstrate all features.
- Faculty Should be able to view the grades of each student, for each course that they have taught.
- Current courses will include Published and Unpublished courses.
- Admin should be able to view the list of students enrolled in a particular course.
- After the Login Page is implemented, integrate it with rest.
- Entire frontend for Admin Features.
Raviraj Wadnerkar - Build a Mock database that has data from students, faculty and courses.
- Deploy the database on a Cloud platform.
- Deploy Web App on AWS EC2 with Auto Scaled EC2 cluster and Load balancer.
- Faculty Should be able to add Assignments and Quizzes.
- Faculty should be able to add content to the syllabus section of a course.
- Faculty should be able to view the list of courses taught by them in current and previous semesters.
- Faculty should be able to see the list of students enrolled for each of its courses.
- UML Deployment Diagram

Project Report / Project Journal

Project Documentation

The report also uploaded as: Team Pi 202 Project Report.docx

The below deliverables can be found in the Project Report

  1. Work Separation by team members
  2. Burndown Chart
  3. Wireframe UI
  4. Explanation of XP Values
  5. Deployment Diagram: Added as Deployment Diagram.jpeg
  6. Component Diagram: Added as Component_Diagram.png
  7. API Documentation

2 XP Core Values that were followed

  1. Simpicity

    a. Our project embraced the XP core value of Simplicity by focusing on essential functionalities and avoiding over-engineering.

    b. We prioritized crucial features such as viewing courses and managing student lists, and decided against implementing a complex feedback mechanism early in development to maintain clarity and manageability.

    c. Our development process was characterized by iterative development; this approach allowed us to continuously integrate feedback and refine our application with each cycle, greatly enhancing alignment with user needs and system requirements.

    d. Regular refactoring was integral to our workflow, helping us keep the codebase simple and maintainable by systematically improving the existing code and integrating new features seamlessly.

    e. Additionally, we employed a component reuse strategy across different user roles to ensure consistency in the user interface, reduce developmental redundancy, and facilitate easier maintenance and upgrades, thus adhering to the DRY principle and reinforcing the value of simplicity in our software engineering practices.

  2. Communication

    In our project, we prioritized effective communication by instituting daily stand-up meetings as part of our Agile practice. Held via Google Meet at the same time each day, these 15-minute sessions required the active participation of all team members, ensuring consistent and efficient exchanges of information. Each team member shared their recent accomplishments, next steps, and any obstacles they faced, allowing for immediate identification and collaborative resolution of issues, significantly minimizing delays.

    The structure of these meetings was crucial in maintaining alignment with project goals, as they kept everyone informed about the project's current status and upcoming priorities. This routine not only facilitated prompt adjustments to our work plans based on new developments and insights but also strengthened team cohesion by fostering a sense of community and mutual accountability. Ultimately, our commitment to open and ongoing communication played a pivotal role in sustaining project momentum and achieving successful project delivery.