# Application Challenges Spring 2025

# Tech Lead/Developer Challenge

## Tech Lead/Developer Challenge

#### Overview

This challenge is designed to provide an accurate representation of the day-to-day challenges faced by developers at Blueprint. We aim to assess your software engineering skills, problem-solving abilities, and how effectively you can contribute to a high-performance software team. Developing software collaboratively presents unique challenges, such as maintaining a consistent codebase and ensuring seamless integration of changes when multiple developers work on similar features. This challenge will evaluate how well you navigate these challenges while adhering to best practices in software development.

Modern software applications are typically divided into a **frontend** and a **backend**. In this challenge, you will contribute to a project the Tech Team has been actively developing over the past year. Our tech stack consists of:

- **Frontend**: React
- **Backend**: Spring Boot + PostgreSQL

You will be expected to work within this stack and follow industry best practices for software development.

#### Blueprint Admin

As Blueprint continues to grow, so does our need for efficient resource management. The **Blueprint Admin** platform aims to provide a comprehensive overview of the organization's current state. Through this dashboard, the **Executive Board (E-board) and Tech Leads** will be able to:

- Create and manage events
- Oversee AWS resources
- Track attendance
- Manage the organization's budget

#### Challenge

You must choose **one** of the issues listed below and implement a solution.

#### Frontend Issues ([Repository](https://github.com/stevensblueprint/blueprint_admin))

- [Issue #38](https://github.com/stevensblueprint/blueprint_admin/issues/38)
- [Issue #35](https://github.com/stevensblueprint/blueprint_admin/issues/35)
- [Issue #34](https://github.com/stevensblueprint/blueprint_admin/issues/34)

#### Backend Issues ([Repository](https://github.com/stevensblueprint/blueprint_admin_backend))

- [Issue #41](https://github.com/stevensblueprint/blueprint_admin_backend/issues/41)
- [Issue #44](https://github.com/stevensblueprint/blueprint_admin_backend/issues/44)
- [Issue #42](https://github.com/stevensblueprint/blueprint_admin_backend/issues/42)

---

#### How to Contribute

Follow these steps to fork the repository, make changes, and submit a Pull Request (PR).

#### Fork the Repository

1. Navigate to the repository you want to contribute to: 
    - **Frontend:** [blueprint\_admin](https://github.com/stevensblueprint/blueprint_admin)
    - **Backend:** [blueprint\_admin\_backend](https://github.com/stevensblueprint/blueprint_admin_backend)
2. Click on the **"Fork"** button in the top-right corner.
3. This creates a copy of the repository in your GitHub account.

#### Clone the Forked Repository

After forking, clone the repository to your local machine:

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-git-clone-https%3A%2F%2Fgi"><div class="overflow-y-auto p-4" dir="ltr">`git <span class="hljs-built_in">clone</span> https://github.com/{your-github-username}/blueprint_admin.git`</div></div>or for backend:

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-git-clone-https%3A%2F%2Fgi-0"><div class="overflow-y-auto p-4" dir="ltr">`git <span class="hljs-built_in">clone</span> https://github.com/{your-github-username}/blueprint_admin_backend.git`</div><div class="overflow-y-auto p-4" dir="ltr">  
</div></div>> Remember the Tech Team will be working on the repos concurrently. Remember to pull from the origin constantly!

#### Set Up the Development Environment

#### Frontend

1. Install dependencies: <div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950"><div class="overflow-y-auto p-4" dir="ltr">`npm install`</div></div>
2. Start the development server: <div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950"><div class="sticky top-9 md:top-[5.75rem]">  
    </div><div class="overflow-y-auto p-4" dir="ltr">`npm start`</div></div>

#### Backend

Run the database using Docker

`docker-compose up --build`

Compile the service

`./gradlew build`

Run the service

`./gradlew bootRun`

If you have issues with any of the steps mentioned above, visit the troubleshoot section in the README.md

#### Create a New Branch

Before making changes, create a new branch:

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-git-checkout--b-fix-"><div class="overflow-y-auto p-4" dir="ltr">`git checkout -b fix-issue-XX`</div></div>Replace `XX` with the issue number.

#### Implement Your Solution

- Carefully read the issue description and implement the required feature or fix.
- Follow the existing **code style and conventions**.
- **Write tests** where applicable.

#### Commit Your Changes

After making your changes, commit them:

`git add .`

Push your branch to GitHub:

`git push origin fix-issue-XX`

#### Submit a Pull Request

1. Go to the **forked repository** (Blueprint Admin or Backend).
2. Click **"Compare &amp; pull request"**.
3. Provide a **clear PR description**: 
    - Reference the issue number.
    - Describe your changes.
    - Mention any tests you wrote.
4. Click **"Create pull request"**.

#### Submission Checklist

- Forked the repository
- Cloned the repository
- Set up the development environment
- Created a new branch
- Implemented the fix/feature
- Committed and pushed changes
- Submitted a pull request by ***2/16 11:59 P.M***

If you have any questions please reach out to <mmerlin@stevens.edu> or <ifarfand@stevens.edu>. ***We also highly recommend attending this Thursday's (2/6) GBM in Babbio 320 at 9:15 P.M where we will cover a lot about pull requests and working effectively with git.***

# Designer Challenge

#### Task

**For this project team challenge, you will design a homepage for a non-profit.**

To access the full challenge template, click this [Figma Link.](https://www.figma.com/design/exPsq5jhEORhp4cyMcVX6o/2025-Blueprint-Project-Team-Application%3A-Design-Challenge?node-id=0-1&t=T3IFsIivzgCbATTx-1) The passcode is: bpdesignteam**

##### Background Information

- Our nonprofit partner, PennyJuice, specializes in providing 100% blended fruit juice concentrate tailored for childcare centers. Their products are all-natural, organic, and some are even color-free.
- They approached us to redesign their homepage with a fresh UI/UX. Their key requirements include: 
    - Retaining their original brand assets, such as the logo.
    - Incorporating a modern and refreshed look while not being limited to their current brand colors.
- Here is their current website: [https://www.pennyjuice.com/ ](https://www.pennyjuice.com/)

##### Requirements

- Create both Desktop and Mobile designs
- Must create component page ( colors, typography, spacing....)
- BE CREATIVE

##### Submission Guidelines

- Create a new figma file.
- Title the page with your Stevens username
- Design 1 desktop mockup and 1 mobile mockup of the home page (Check Sample Submission Pg) 
    - The desktop mockup should have a width of 1440px
- Choose any mobile screen size
- ***You must submit your figma file to Sahana and Audrey via email.***
    - The submission should include a link to your Figma file (make sure to share it so that we can view it)
    - The subject of your email should be: ***Project Team Design Challenge***
    - cc <sit.blueprint@gmail.com>

Please feel free to email Audrey (<ayoo2@stevens.edu>) and Sahana (<sali19@stevens.edu>) for any questions  
  
**SUBMISSION DEADLINE: 2/16 11:59 P.M**

##### Tips  


- Design the desktop mockup first, then consider how you’d implement responsiveness with a mobile (smaller) screen size
- Keep brand colors in mind
- Frame and group elements together
- Look at other successful websites in similar industries with similar audiences

# Product Manager Challenge

### Due 2/16/25 at 11:59 pm

### Part 1: Improving the Boulder Blueprint Website

#### Objective:

As a prospective product manager, your task is to analyze the [University of Colorado Boulder Blueprint Website](https://blueprintboulder.org/projects), identify pain points, and propose solutions to enhance the user experience. You will demonstrate your ability to empathize with users, think critically, and communicate actionable solutions.

#### Step 1: Identify Pain Points

Explore the University of Colorado Boulder Blueprint website and identify 3-5 pain points that users (e.g., members, prospective members, or external stakeholders) might experience. Use the following definition to guide your analysis:

***Pain Point:*** A persistent or recurring problem that frequently inconveniences or annoys users.

#### Examples of pain points to consider:

- Lack of clarity about the organization's mission, projects, or impact.
- Difficulty finding information about upcoming events or meetings.
- Poor navigation or confusing website layout.
- Outdated or inconsistent content.
- Lack of engagement opportunities for members or visitors.

### Step 2: Write User Stories

For each pain point, write a user story to articulate the problem from the perspective of the user. Use the following format:

As a \[type of user\], I want \[specific goal\], so that \[reason or benefit\].

#### Example:

Pain Point: Blueprint general members are not aware of what the organization does.

User Story: As a member of Blueprint, I want to be aware of the organization's current events and projects, so I can better understand the impact and activities the organization is involved in.

# Step 3: Propose Solutions

For each user story, propose a solution that addresses the pain point. Your solution should be specific, actionable, and feasible. Consider the following when crafting your solutions:

- How does the solution directly address the pain point?
- What resources or tools would be needed to implement the solution?
- How will the solution improve the user experience?

#### Example:

Solution: Blueprint Newsletter: A weekly newsletter that details the events and progress of ongoing projects within Blueprint.

Your proposed solution could also be a redesinged portion of the website's user interface/user experience.

## Part 2:

#### Share an example of a time you led a team. What specific actions did you take as a leader, and what outcomes or results did you achieve?

### Submission:

To answer the questions, create your own copy of this document. Email a pdf of your answers to [sit.blueprint@gmail.com ](mailto:sit.blueprint@gmail.com)and cc <Lha1@stevens.edu> by 2/16/25 at 11:59 pm. Email (or message in Discord) <Lha1@stevens.edu> for any questions regarding this challenge.