• Recap
  • Big Teams

    We took our Tri 2 team:

    • Paaras (Scrum Master, Frontend)
    • Varaprasad (DevOps)
    • Tanay (Backend)

    And combined with these people from period 3:

    • Parav
    • Soham
    • Colin
    • Shaurya

    And these people from period 1:

    • Aniket
    • Orlando
    • Mati

    Combining

    Our team had a Tinder-esque application, but instead of dates, users swipe through startup companies Soham, Colin, and Aniket were working on an application that was better than Canvas. Parav was working on an app better than Saturn. Orlando and Mati were working on a chatting app similar to Slack.

    When combining ideas, we had to keep some features in mind, which were:

    • Internship database
    • Swiping controls
    • Canvas features
        @PutMapping("/update/{id}")
        public ResponseEntity<Object> updateScore(@PathVariable long id,
                                                @RequestParam("newEmail") String newEmail,
                                                @RequestParam("newAssignment") String newAssignment,
                                                @RequestParam("newScore") double newScore) {
            Optional<Grade> optional = repository.findById(id);
            if (optional.isPresent()) {
                Grade grade = optional.get(); //read from database
                // Check if the email and assignment match the existing record
                if (grade.getEmail().equals(newEmail) && grade.getAssignment().equals(newAssignment)) {
                    // Update the grade
                    grade.setScore(newScore);
                    repository.save(grade); //send request to update DB
                    return new ResponseEntity<>("Grade updated successfully", HttpStatus.OK);
                } else {
                    return new ResponseEntity<>("Email and assignment do not match existing record", HttpStatus.BAD_REQUEST);
                }
            } else {
                return new ResponseEntity<>("Grade not found", HttpStatus.NOT_FOUND);
            }
        }
      
    • Saturn classes with comparision feature
        @GetMapping("/compareClassesWithPopulation/{personId}")
        public ResponseEntity<List<String>> compareClassesWithPopulation(@PathVariable Long personId) {
            Optional<Person> optionalPerson = repository.findById(personId);
          
            if (optionalPerson.isPresent()) {
                Person person = optionalPerson.get();
                List<Person> allPersons = repository.findAll();
                List<String> responseMessages = new ArrayList<>();
          
                for (Person otherPerson : allPersons) {
                    if (!otherPerson.getId().equals(personId)) {
                        List<String> similarClasses = findSimilarClasses(person, otherPerson);
                        if (!similarClasses.isEmpty()) {
                            String message = String.format("You have classes with %s. Here are the classes you have together: %s",
                                                           otherPerson.getName(), similarClasses.toString());
                            responseMessages.add(message);
                        }
                    }
                }
          
                if (responseMessages.isEmpty()) {
                    return ResponseEntity.ok(Collections.singletonList("No similar classes found with any other user."));
                } else {
                    return ResponseEntity.ok(responseMessages);
                }
            } else {
                return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
            }
        }
      
    • Chat feature

    We decided to combine our project into one idea: An app for students to manage classes, get to class on time with a timer, find internships through social-media-esque scrolling, and chat with internship recruiters as well as their fellow students and teachers.

    Starting our DS Engines

    Seed (Individual)

    As a team, we pledge to do our very best to adhere to the established requirements for individual seed. Although we all may not have received a 93% or above, we all agree to present AP prep, key commits, GitHub analytics, live demos, and data structures concepts in our indiviual reviews, and how they all connect and relate with each other.

    Seed (Team)

    Each week, we will compile our work in ideation/planning, testing, retrospective, actual code, and user feedback (teacher or peers) in a weekly issue for team reviews.

    We will be creating a scrum board in our new big-team repository. We will dedicate the backend repository to our scrum board, and issues, and both frontend and backend repositories will have analytics and pull requests.

    Although every team member will be committing weekly Java code, each person will be working on something different and have different key commits to present. Each member will connect data structures and CollegeBoard concepts to their commits, but members may collaborate on one commit to achieve a certain relation of CB/DS to PBL.

    Upon the first live review, our team will make sure that the teacher has access to all of our GitHub assets. All default code shall be removed during the first week except the backend default login credentials.

    Each member will have their own branch, and pull requests will be referenced in weekly issues should they be done during then.

    Ideation/planning, testing, retrospective, actual code, and user feedback (teacher or peers) will be completed by each member every week.

    Sprint 7 Resources - CB/DS Relating to PBL

    Our key commits will demonstrate the following concepts within our PBL:

    • All APCSA CollegeBoard units
    • Data Structures II concepts:
      • Linked list
      • Stacks queues
      • Searching
      • Sorting algorithms
        • Bubble
        • Insertion
        • Merge
        • Selection
        • Bogo (demonstrate why it is inefficient at least once, not necessarily related to our project)

    Recap

    Each weekly individual issue must meet the following:

    • Brief summary
    • Ideation/plans
    • Key commits (commit message references the commit to the issue)
    • Explanation of CB/DS concepts relating to key commits
    • Pull requests (if applicable)
    • GitHub analytics
    • Testing & feedback (or plans to do so)

    Tasks for Each Member

    • Tanay: I am going to add RBAC to the backend of the previous Linkr application to
    • Parav: Compare shecdules between students. Make API, it should use JWT cookie, not static data
    • Shaurya: Chat feature, JWT cookie is embedded, so that user can only chat with certain people
    • Soham: Grading frontend and backend, allow employers for internships to see student grades
    • Colin: Colin is working on being able to see and enroll in different classes. Combine account systems.
    • Varalu: Populate the internship database with realistic internships
    • Paaras:
    • Orlando: Adjust the message feature for “Direct Messages” as well as integrate web sockets for real time messaging
    • Mati: Will remake the AI feature from last tri, but better performing and better looking
    • Aniket: Working on the chat feature as well as helping to revamp the Canvas app grading into employer work ratings