Coder Social home page Coder Social logo

palette-pal-frontend's Introduction

Table of contents

Palette Pal App

This app was created by Nim Garcia and Lynne Rang.

This project is a Turing front-end development project focused on working with React and and Enzyme/Jest on the front-end and Express, Knex, SQL, Postgres, and middleware on the back-end.

This was an app inspired by palette picker websites like Coolers or HTMLColorCodes for generating and editing different color palettes. In this app, you can also save and manage palettes within different projects/categories and edit them after they are saved.

Screenshots

Home page Home page held colors Projects page edit color Projects page Login

Getting Started

You can view this application live on Heroku at: https://palette-pal-fe.herokuapp.com/ !

OR

If you'd like to clone this repository to your own local machine, run the following commands in your terminal:

git clone https://github.com/nimsum/palette-pal-frontend.git
git clone https://github.com/nimsum/palette-pal-backend.git

Then for each repo, run the following command to install dependencies:

npm install

To view the app in action, run the following command in your terminal for the front-end:

npm start

Then run the following command in your terminal to start the server for the back-end:

node server.js

Run an npm install, then create your own local database called 'palette_auth_test' using psql:

psql
# CREATE DATABASE palette_auth_test;
\q

Run the following commands to create the database tables and seed them with test data:

knex migrate:latest
knex seed:run

Then, go to http://localhost:3000/ in your browser to see the code running in the browser.


How to Use

  1. On the home page, you can see a randomized color palette with five colors. You can hit the space bar or click "Generate New Palette" to get a new palette.
  2. You can also see hsl and rgb values for the colors by using the format drop-down at the top right.
  3. Instead of randomizing each color, you can also choose to see complementary color palettes or a gradient palette between two random colors by using the "Mode" dropdown at the top right.
  4. You can lock colors by clicking the "Hold" checkbox at the bottom of each color, and when you hit the space bar it will refresh any unheld colors.
  5. The "Generate New Palette" button will always refresh all five colors whether they are held or not.
  6. You can also edit each color by clicking the pencil icon and using the editor to choose what new color you would like.
  7. If you sign up for an account and log in, you can save a palette by clicking "Save Palette" at the bottom right and entering palette details.
  8. You can also access the "My Projects" page and manage your own projects and palettes if you are signed into an account.
  9. In the "My Projects" page, you can edit project or palette names by clicking directly on them. You can also edit palette colors using the pencil, icon, delete palettes by clicking the X at the top right, or delete whole projects by clicking the trash can in each project section.
  10. You can also view hsl and rgb values in the "My Projects" page using the "Format" dropdown, or filter to specific projects by selecting from the "Project" dropdown.

UI Design

Given the limited time frame, we created a high-fidelity prototype of the design on Figma to have a more detailed idea of where we wanted everything to go on the different pages.

Figma designs

Future Plans

We plan to keep working on this to add more features like the following:

  • Add media queries for better responsiveness across devices
  • Add field validation & error handling in dialogs
  • Add search bar to "My Projects" page to allow searching by project or palette names
  • Refactor login and sign up dialogs into react router routes
  • Load save palette dialog with specific project when "add new palette" is clicked from project screen
  • Implement drag and drop to reorder projects and palettes

Project Emphasis

View the project specification on the Turing webpage for this project.

Front-End

  • SCSS
  • Flex-box
  • UI design
  • React
  • React router
  • Es6 classes
  • Async JavaScript
  • API fetches
  • Enzyme & Jest testing
  • Webpack
  • NPM

Back-end

  • Node.js/Express
  • Knex
  • Relational Databases
  • SQL
  • Postgres
  • JWT Authentication
  • Express Middleware

Licensing

All credit goes to Turing School of Software for providing the project specifications.

palette-pal-frontend's People

Contributors

lynnerang avatar nimsum avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

James Cloos avatar

Forkers

lynnerang

palette-pal-frontend's Issues

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.