Team Organization (Review)

Screen Shot 2024-03-15 at 9 05 09 AM

Full Member List #### Team 1 | Name | Role | | --- | --- | | Aiden | Subteam Leader/Frontend lead/sass god/some backend | | Ishi | Frontend | | Ekam | Backend | #### Team 2 | Name | Role | | --- | --- | | Aiden | same guy as before! | | Ryan | Full stack developer!! | | Edwin | Frontend | #### Team 3 | Name | Role | | --- | --- | | Drew | Subteam Leader/Fully stacked 😱 | | Raymond | Full stack developer | | Haoxuan | Backend | | AJ | Full stack developer | #### Team 4 | Name | Role | | --- | --- | | Toby | Subteam Leader/DevOps/Backend/Websocket/Branches/Maintainer | | Isabelle | Backend | | Aaron | Frontend | | Kevin | Swing |

Agile Manifesto

Features & Demos

FRQ 1 Lesson (Triangle 1)

  • Important syntax
  • Example FRQ
  • MCQ
  • Common Mistakes

https://john-scc.github.io/jcc_frontend/2024/03/19/Arrays_IPYNB_2_.html

New/Improved Wireframes (Triangle 2)

New members = new features = new WIREFRAMES!!

Screen Shot 2024-03-18 at 7 50 39 AM

Screen Shot 2024-03-18 at 7 50 50 AM

Drag & Drop - Table Generator (Triangle 1/2)

Fully implemented functionality to drag and drop members of a table to different tables on our generator page using jQuery API’s .draggable() and .droppable() methods.

Video Demonstration

demo

Next Steps

  • Hover animations
  • Enter event listeners on most text boxes (i.e. changing name of class)
  • Prompt to verify if really want to delete class
  • A new dropzone underneath each table to add members to a table without swapping (adding 1 to a 4 person team)
  • Backend integration

JWT Implementation with Dashboard and ClassPeriod Creation (Triangle 3)

Drew’s largest contributions in the past week have been related to implementing the JWT as a security and ease-of-navigation feature using the @CookieValue tag of the Spring backend.

Runtime

Video Demonstration

Click here to see a short demonstration of the functionality of the combination of the new frontend and backend contributions.

Future Improvements

  • Styling on class period creation and period data screen (waiting on wireframe)
    • If assignments are empty, an option to create the first assignment should be present
    • A new menu for dynamically searching for and inviting students to a class
  • POST method for adding multiple students at a time that utilizes the same JWT identification method (to ensure that the leader is the one adding students in the request)
  • (Within the scope of Person) An attribute to store ClassPeriod invitations for each user so that they can consent to joining a class, preventing potential spam

Stats Data Calculation and Storage on Backend (Triangle 3)

See the relevant pull request here.

Raymond focused his efforts on creating backend objects that can be used to store graphing/stats data on the backend for use in classes/individually on the frontend, as well as methods used to calculate data for the provided data set (commit). Example below:

public class StatsFunctions {
    public double calculateMean(List<Double> dataset)
    {
        double sum = 0;
        for (double i : dataset)
        {
            sum += i;
        }
        double mean = sum / dataset.size();
        return mean;
    }
    // more below
}

Haoxuan spent time reviewing the codebase and has begun work on GET and POST endpoint methods to be utilized on the frontend (commit). Example below:

public class StatsApiController {
    @GetMapping("/get")
    public ResponseEntity<List<double>> getCorrelation() {
        List<Quantitative> quan = repository.findAll();
        List<double> correlations = new ArrayList<>();
        for (int i=0;i<quan.size();i++){
            correlations.add(quan.get(i).getCorrelation());
        } 
        return correlations;
    }
}

Current Features

  • Can create new data types for multiple group Quantitative and Categorical data.
  • Basic (necessary) statistical functions
    • Calculate mean, standard deviation, minimum, maximum, median and correlation

Future Implementation

  • Frontend graphing functionality will need to be paired with this backend data
  • Needs specified GET endpoints for each type of data (Raymond)
  • No existing endpoint for post (Haoxuan)
  • No collaborative option implemented yet

Assignment JWT Functionality (Triangle 3)

This week, AJ focused on implementing the new working JWT functionality with Assignment creation. The POST method has been modified to check if the signed-in user has leader permissions in the ClassPeriod(s) they’re trying to make an assignment within.

Future Improvements

  • Styling overhaul on the frontend part of the assignment request
  • Assignment object attribute for storing user assignment submissions (hopefully multiple filetypes)
    • Possible to specify if an assignment should not have submissions (an announcement)
  • Assignment information change to be able to store images to be shown in assignments

Aaron Began working on Stapplet Features (Triangle 4)

Link

  • Improved styling of stapplet page
  • began working on a new data type

Isabelle Added her feature from her project, video calling (Triangle 4)

Pull Request

  • Displays users who are online
  • allows video communication

Kevin created the search Feature (Triangle 4)

Pull Request

  • Created student class to integrate to our project.
  • Recreated the student class from his backend, will soon integrate it with our existing person class

Toby created a system to automatically pull issues (Triangle 4)

Issue Pull Request Blog

  • Created system to automatically pull github issues into our project
  • Utilizes AWS Secrets Manager to store a secret github key
  • Utilizes AWS Lambdas and an API Gateway to return that secret key

Weekly Analytics

Triangle 1

Aiden
Edwin image
Ryan

Triangle 2

Ekam
Ishi

Triangle 3

Drew Screen Shot 2024-03-17 at 10 47 27 PM
AJ Screen Shot 2024-03-17 at 10 49 31 PM
Raymond Screen Shot 2024-03-17 at 10 50 40 PM
Haoxuan Screen Shot 2024-03-17 at 10 52 43 PM

Triangle 4

Toby Screen Shot 2024-03-17 at 9 46 14 PM
Aaron Screen Shot 2024-03-17 at 9 46 56 PM
Isabelle Screen Shot 2024-03-17 at 9 47 10 PM
Kevin Screen Shot 2024-03-17 at 9 47 25 PM