Skip to content

izackp39/startup

Repository files navigation

Ski Outfit Picker

My Notes

Description: I am wanting to implement an outfit picker for skiing/snowboarding. This program will allow you to select combinations of helmets, jackets, and pants. You will be able to save these different combinations to a closet where you can view them later. This will be similar to the zen garden application shown as an example in the assignment details.

Note

This is a template for your startup application. You must modify this README.md file for each phase of your development. You only need to fill in the section for each deliverable when that deliverable is submitted in Canvas. Without completing the section for a deliverable, the TA will not know what to look for when grading your submission. Feel free to add additional information to each deliverable description, but make sure you at least have the list of rubric items and a description of what you did for each item.

Note

If you are not familiar with Markdown then you should review the documentation before continuing.

πŸš€ Specification Deliverable

Note

Fill in this sections as the submission artifact for this deliverable. You can refer to this example for inspiration.

For this deliverable I did the following. I checked the box [x] and added a description for things I completed.

  • Proper use of Markdown
  • A concise and compelling elevator pitch
  • Description of key features
  • Description of how you will use each technology
  • One or more rough sketches of your application. Images must be embedded in this file using Markdown image references.

Elevator pitch

Do you ever struggle to choose a new ski outfit for the season or plan out good combos to keep you looking steezy on the mountain? Well look no furtuer, the Ski Outfit Picker is the one stop shop for you! This app allows you to explore outfit variations and didferent combos of helmets, ski jackets, and snow pants BEFORE you hit the mountain or purchase that new jacket!

Design

Ski Outfit Picker Mocks

The sketch on the top left shows the initial login screen while the closet interface is displayed on the bottom left. The main outfit picker is displayed on the right. Users authenticate first, then select a helmet, jacket, and pants from card-based options with clear visual feedback for selected items. The closet view is where users can see previously saved outfit combinations. Each saved outfit displays the selected helmet, jacket, and pants together for easy comparison and recall.

sequenceDiagram
    actor User
    participant Frontend as React App
    participant Backend as Service
    participant DB as Database
    participant API as Weather API

    User->>Frontend: Log in
    Frontend->>Backend: POST /login
    Backend->>DB: Verify credentials
    DB-->>Backend: Auth success
    Backend-->>Frontend: Login confirmed

    User->>Frontend: Select helmet, jacket, pants
    Frontend->>API: Request current weather
    API-->>Frontend: Weather data
    User->>Frontend: Save outfit to closet
    Frontend->>Backend: POST /closet
    Backend->>DB: Store outfit
    Backend-->>Frontend: Outfit saved
Loading

Key features

  • Ability to scroll between different helmets, ski jackets, and ski pants and view different outfit combinations
  • Ability to save outfit combinations to a closet
  • Ability to get suggetions based on current weather
  • Notifications when other users save outfits

Technologies

I am going to use the required technologies in the following ways.

  • HTML - Uses proper semantic HTML structure with two main pages: a login page and an outfit picker page. Includes sections for helmet, jacket, and pants selection, as well as navigation links to view saved outfits in the closet.
  • CSS - Provides responsive styling that looks good on different screens. Includes clean spacing, strong color contrast, and subtle animations to highlight selected gear and interactions.
  • React - Implements a single-page application with reusable components for login, outfit selection, and closet viewing. The UI updates based on user actions and authentication status.
  • Service - Backend service with endpoints for user registration, login, logout, retrieving gear options, and saving or retrieving outfits. Integrates a third-party weather API to enhance outfit suggestions.
  • DB/Login - Stores user authentication data, available gear items, and user-saved outfit combinations. Supports retrieving closet data specific to each authenticated user.
  • WebSocket - Uses WebSockets to broadcast real-time updates to other users when anyone saves a new outfit.

πŸš€ AWS deliverable

For this deliverable I did the following. I checked the box [x] and added a description for things I completed.

  • Server deployed and accessible with custom domain name - My server link.

πŸš€ HTML deliverable

For this deliverable I did the following. I checked the box [x] and added a description for things I completed.

  • HTML pages - I created separate html pages for Home, Outfit Picker, and Closet View pages.
  • Proper HTML element usage - Use of Body, nav, main, header, footer, etc, tags where applicable.
  • Links - In the header on each page, there is a link that directs users between separate pages: Home, Outfit Picker, and Closet View
  • Text - I updated the text on each page to mirror the mock-ups that I previously delivered and ensure proper navigation of site.
  • 3rd party API placeholder - On the closet view page, I included the weather on the bottom which will display today's weather and update accordingly.
  • Images - Both the Outfit picker and closet view pages include many images
  • Login placeholder - The Home Screen has a placeholder for login. Username is displayed on Outfit Picker page once logged in.
  • DB data placeholder - The Closet View page supports the retreval of user-specific saved outfits and will update based on user and saved data.
  • WebSocket placeholder - On the Outfit Picker page at the bottom, there is a placeholder for alerting users when anyone saves a new outfit.

πŸš€ CSS deliverable

For this deliverable I did the following. I checked the box [x] and added a description for things I completed.

  • Visually appealing colors and layout. No overflowing elements. - I did not complete this part of the deliverable.
  • Use of a CSS framework - I did not complete this part of the deliverable.
  • All visual elements styled using CSS - I did not complete this part of the deliverable.
  • Responsive to window resizing using flexbox and/or grid display - I did not complete this part of the deliverable.
  • Use of a imported font - I did not complete this part of the deliverable.
  • Use of different types of selectors including element, class, ID, and pseudo selectors - I did not complete this part of the deliverable.

πŸš€ React part 1: Routing deliverable

For this deliverable I did the following. I checked the box [x] and added a description for things I completed.

  • Bundled using Vite - I did not complete this part of the deliverable.
  • Components - I did not complete this part of the deliverable.
  • Router - I did not complete this part of the deliverable.

πŸš€ React part 2: Reactivity deliverable

For this deliverable I did the following. I checked the box [x] and added a description for things I completed.

  • All functionality implemented or mocked out - I did not complete this part of the deliverable.
  • Hooks - I did not complete this part of the deliverable.

πŸš€ Service deliverable

For this deliverable I did the following. I checked the box [x] and added a description for things I completed.

  • Node.js/Express HTTP service - I did not complete this part of the deliverable.
  • Static middleware for frontend - I did not complete this part of the deliverable.
  • Calls to third party endpoints - I did not complete this part of the deliverable.
  • Backend service endpoints - I did not complete this part of the deliverable.
  • Frontend calls service endpoints - I did not complete this part of the deliverable.
  • Supports registration, login, logout, and restricted endpoint - I did not complete this part of the deliverable.

πŸš€ DB deliverable

For this deliverable I did the following. I checked the box [x] and added a description for things I completed.

  • Stores data in MongoDB - I did not complete this part of the deliverable.
  • Stores credentials in MongoDB - I did not complete this part of the deliverable.

πŸš€ WebSocket deliverable

For this deliverable I did the following. I checked the box [x] and added a description for things I completed.

  • Backend listens for WebSocket connection - I did not complete this part of the deliverable.
  • Frontend makes WebSocket connection - I did not complete this part of the deliverable.
  • Data sent over WebSocket connection - I did not complete this part of the deliverable.
  • WebSocket data displayed - I did not complete this part of the deliverable.
  • Application is fully functional - I did not complete this part of the deliverable.

About

This is my startup project for CS 260

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors