Coder Social home page Coder Social logo

crate's Introduction

Crate

Crate πŸ‘•πŸ‘–πŸ“¦

Get monthly subscription of trendy clothes and accessories.

  • API built with Node, GraphQL, Express, Sequelize (MySQL) and JWT Auth
  • WebApp built with React and Redux along with Server Side Rendering (SSR) / SEO friendly
  • Mobile (Android and iOS) Native App build with React Native
  • Written in ES6+ using Babel + Webpack
  • Designed using Adobe Experience Design. Preview it here.

Features

  • Modular and easily scalable code structure
  • Emphasis on developer experience
  • UI components in separate folder which can be swapped for your favorite UI framework easily
  • Responsive UI for React Native to support Mobile and Tablet
  • GraphQL schema with associations
  • Database migration and data seeding
  • User authentication using JSON Web Tokens with GraphQL API
  • File upload feature with GraphQL
  • React storybook demonstrating UI components for web
  • Server side rendering
  • Multi-package setup and dev scripts for an automated dev experiance

Useful for

  • Developers with basic knowledge on React exploring advance React projects
  • Developers learning React Native
  • Exploring GraphQL
  • Scalable project structure and code
  • Starter application for Mobile and Web along with SSR
  • Multi-package scripts
  • Sample project with combination of all above

Screenshots and GIFs

Click on image to view fullscreen and zoom

Desktop

IMAGE

Crate Desktop

Mobile

IMAGE Β· GIF

Crate Mobile

Tablet

IMAGE Β· GIF

Crate Tablet

Core Structure

code
  β”œβ”€β”€ package.json
  β”‚
  β”œβ”€β”€ api (api.example.com)
  β”‚   β”œβ”€β”€ public
  β”‚   β”œβ”€β”€ src
  β”‚   β”‚   β”œβ”€β”€ config
  β”‚   β”‚   β”œβ”€β”€ migrations
  β”‚   β”‚   β”œβ”€β”€ modules
  β”‚   β”‚   β”œβ”€β”€ seeders
  β”‚   β”‚   β”œβ”€β”€ setup
  β”‚   β”‚   └── index.js
  β”‚   β”‚
  β”‚   └── package.json
  β”‚
  β”œβ”€β”€ mobile (Android, iOS)
  β”‚   β”œβ”€β”€ assets
  β”‚   β”œβ”€β”€ src
  β”‚   β”‚   β”œβ”€β”€ modules
  β”‚   β”‚   β”œβ”€β”€ setup
  β”‚   β”‚   β”œβ”€β”€ ui
  β”‚   β”‚   └── index.js
  β”‚   β”‚
  β”‚   └── package.json
  β”‚
  β”œβ”€β”€ web (example.com)
  β”‚   β”œβ”€β”€ public
  β”‚   β”œβ”€β”€ src
  β”‚   β”‚   β”œβ”€β”€ modules
  β”‚   β”‚   β”œβ”€β”€ setup
  β”‚   β”‚   β”œβ”€β”€ ui
  β”‚   β”‚   └── index.js
  β”‚   β”œβ”€β”€ storybook
  β”‚   β”‚
  β”‚   └── package.json
  β”‚
  β”œβ”€β”€ .gitignore
  └── README.md

Setup and Running

  • Prerequisites
    • Node
    • MySQL (or Postgres / Sqlite / MSSQL)
  • Clone repo git clone [email protected]:atulmy/crate.git crate
  • Switch to code directory cd code
  • Configurations
    • Modify /api/src/config/database.json for database credentials
    • Modify /api/.env for PORT (optional)
    • Modify /web/.env for PORT / API URL (optional)
    • Modify /mobile/src/setup/config.json for API URL (tip: use ifconfig to get your local IP address)
  • Setup
    • API: Install packages and database setup (migrations and seed) cd api and npm run setup
    • Webapp: Install packages cd web and npm install
    • Mobile:
      1. Install packages cd mobile and npm install
      2. Install iOS dependencies cd mobile/ios pod install
  • Development
    • Run API cd api and npm start, browse GraphiQL at http://localhost:8000/
    • Run Webapp cd web and npm start, browse webapp at http://localhost:3000/
    • Run Mobile cd mobile and npx react-native run-ios for iOS and npx react-native run-android for Android
  • Production
    • Run API cd api and npm run start:prod, creates an optimized build in build directory and runs the server
    • Run Webapp cd web and npm run start:prod, creates an optimized build in build directory and runs the server

Multi-package automation

  • New developers are advised to run through the above 'setup and running' process before reading further.
  • Optional multi-package automation for faster setup and easier dev environment initiation.
  • No need to cd to sub-folders unless working with mobile or running a production build.
  • Once Node, MySQL, repo clone and configuration are setup correctly

Resources and Inspirations

  • ✍️ Opinionated project architecture for Full-Stack JavaScript Applications - GitHub
  • 🌈 Simple Fullstack GraphQL Application - GitHub
  • 🌐 Universal react application with server side rendering - GitHub
  • Container Components - Medium Post
  • Zero to GraphQL in 30 Minutes - YouTube
  • Building a GraphQL Server YouTube Playlist
  • Universal JavaScript Web Applications with React by Luciano Mammino - YouTube
  • Building Youtube UI in React Native in 30 Mins - YouTube
  • Building Stellar Mobile UX With React Native - YouTube
  • Free MySQL hosting https://remotemysql.com

Why open source a project and not a boilerplate or framework?

  • While building a new project with Node, you can basically start scratch, adding libraries and tools as you go on building it further.
  • Comparing with any other languague, you usually start with a framework, for example, Laravel (PHP), Django (Python) or Ruby on Rails (Ruby) which includes a ton of features and codebase which you never end up using.
  • I've personally found, learning by going through a good project codebase step by step while building your own project helps in ease of understanding and remembering

Author

Contributors

  • Ebou Jobe - GitHub
  • Nenad Radovanovic - GitHub Β· Twitter
  • Nicholas Drew - GitHub
  • Mateus Abdala - GitHub
  • Hossein Nedaee - GitHub
  • Mohammad Afzal - GitHub
  • [YOUR NAME HERE] - Feel free to contribute to the codebase by resolving any open issues, refactoring, adding new features, writing test cases or any other way to make the project better and helpful to the community. Feel free to fork and send pull requests.

Donate

If you liked this project, you can donate to support it ❀️

Donate via PayPal Become a Patreon

Hire me

Looking for a developer to build your next idea or need a developer to work remotely? Get in touch: [email protected]

License

Copyright (c) 2018 Atul Yadav http://github.com/atulmy

The MIT License (http://www.opensource.org/licenses/mit-license.php)

crate's People

Contributors

aetzion1 avatar mainlyetcetera avatar christina-cook avatar lbmerchant93 avatar liamcusack avatar

crate's Issues

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

Change Delivery Date

As a user, I can visit my profile page to adjust the date for my next delivery.

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

Test addition: Add tests for existing code

Add tests for existing code, focusing on areas of the code that relate directly to the features in your track

Robbie: Test that an endpoint works! Do'nt spend a lot of time testing functionality - just do a quick verification to ensure your test writing is good!

Robbie: Cypress for FE testing (Jest may not be needed - use mocha/chai instead); Jest and SuperTest for BE

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

View and Edit Next Delivery

As a user, I can visit my profile page to see when my next delivery is coming and adjust the delivery date if needed.

Acceptance Criteria:
Once logged in, a user can visit their profile page to see when their next crate will arrive (This should be 1 month added to the subscribed date). On the profile page, the user will see a calendar that shows the date the crate will be shipped. The user also sees a message that says something like "Your next delivery will ship on DATE." The user also has the option to change the delivery date if the current date doesn't work with their schedule. Once a new date is selected, the calendar and message updates to reflect the user's change. (Edit button next to the delivery date, this button will change the date from a paragraph/text tag to a date input, the edit button also becomes a submit button. Once they select a date, they must then click "Submit" which will send that date to the API, toggles the input back to a p tag, and the edit button replaces the submit again.)

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

Map data flow

Map out data flow through the app as it applies to the specific features you are working on

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

View Product History

As a user, when I visit my profile page I can see a history of products that have been delivered to me and what I have kept.

Acceptance Criteria:
After a user logs in and visits their profile page, they should see a tab that will display their crate history. Within that section, the user can see a list of products that were included in each crate delivery. The user can also clearly see which products they kept from each crate.(Displayed will be the date items were delivered, images of all of the items that were delivered, X's over the images that do not have the property of "kept" for that user, and a key telling the user that X'ed items were not kept.)

Database Updates - BACKEND

  • Add description column
  • Add image column (url)
  • Add shipping address
  • Create Orders table
  • Create OrderProducts table
  • Add or update module files

Code annotations

Code Annotation Instructions

  1. Each team member, create a branch called code-annotations-(your name)
  2. Make a list of the specific files of code that will need to be updated in order to add the additional features outlined in your track
  3. For each file, walk through the code and add a comment above each line/block that describes what that code is doing.
  4. Each team member submit a link to your branch here
    https://forms.gle/oZFYLVDWFzMN8v3e6

Profile Description

As a user,
If I go to my profile,
I should be able to add a personal description.

Acceptance Criteria:
Once a user logs in and visits their profile, they should see an area designated for a personal description with an edit button. Upon clicking the edit button, p toggles to an input and edit button to submit. User can type into the input and then click submit. Submit will send a request to the API, toggle back to a p tag and edit button.

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

EXTENSION: Public URL

As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.

Upload Image to Profile

As a user,
If I wanted to show off an outfit on my profile,
I should be able to upload my own image to my profile.

Acceptance criteria:
Once logged in and on their profile, a user should see a button where they can input their file and upload their own image and click the submit button to submit it to the server so that it persists upon refresh and log in/out. (Maybe find a service that will store the image as url then our servers will only need to hold the url and not the whole image)

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

Wireframes

Create wireframes for user-facing portions of features associated with your track
Wireframe should include the following:

  • Area to upload my own image
  • Area to display the user's images
  • Area to set personal description
  • Area to edit email/shipping addresses
  • Area to see a history of products that have been delivered to me and what I have kept
  • Area to see when my next delivery is coming and adjust the date for when I am available

Edit Address Info

As a user,
I should be able to edit my email address and shipping address on my profile page,
so that my profile has the most up-to-date information.

Acceptance criteria:
Once logged in and on their profile, I user should see an edit button where they can edit their email address or their shipping address. Once the edit is clicked, that specific field will turn from a p tag to an input where they can type in what they wish, then in place of the edit button is now a submit. The submit will send the request to the API, change the input back to a p and display the edit button again instead of the submit button.

ToDo:

  • display shipping address and email address on profile page with edit buttons for each
  • edit button toggles from p to input and from edit to submit
  • address is updated on input submit, toggles back to p and edit

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

User Stories / Chores Setup

Create detailed user stories and chores defining implementation details for the functionality you will add

Style Survey

Feature:
Before adding a monthly subscription I would like to choose my style preferences to ensure that I get clothes that better match my personal style. When I visit /crates, the first time I click on + subscribe I am taken to a style preferences page /style-preferences. I am presented with a style survey that consists of a series of categories such as tops, bottoms, dresses, shoes, accessories, etc. For each category I am given several images to choose from with instructions to choose the images that best reflects my style. After I have chosen the images from each category I am given a summary of my style such as β€˜classic but edgy’.

Extensions:

  • When I visit my profile page, I can see a button to view my style survey. When I click on the button, I am taken to /style-prefences and can edit my style preferences to update my style at any time.

  • I would like to fill out a style survey for different categories of my wardrobe i.e. work, casual, date night. For each category I am presented with the same categories of choices i.e. tops, bottoms, dresses, shoes, accessories, etc.

Improving UX and Community

Feature:
As a user, it’s frustrating to go to my profile page and see little about myself other than my subscriptions. To give the user more control, I’d love to upload my own image, set a personal description, edit my email address and shipping address, and see a history of products that have been delivered to me and what I have kept. I should also see when my next delivery is coming and adjust the date for when I am available.

Extensions:

  • As a trendsetter who values fashion, I would also like to be able to share this as a public URL (don’t have to have an account or be signed in) so that users can see my subscriptions and items that I have chosen to purchase as well. This page should include my profile picture, but keep info including my email address/shipping address, order history, and delivery times private.
  • As a user, I should be able to tweet which clothes I have purchased. (actually integrate it with the Twitter API)

https://mod4.turing.io/projects/crate/crate_project_tracks.html

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.