NOTE: This is only the back-end repository for this application. To clone the front-end repository, please visit:
git clone https://github.com/ericfitzsimons451/Palette-Picker-API.git
npm install
npm start
This project tasked our 3 person team to build a full-stack application in 10 days. We set-up a Postgres database and used Knex to create our tables, migrate, and seed our data into multiple environments: development, production, CI, and testing. Our team enjoyed developing our understanding of the request/response cycle, backend testing, and what goes into building out a robust back-end.
For the front-end we chose to work with Material-UI, despite it not being in the project spec, as a way of challenging ourselves to work with some form of new technology. Pre-styled components come with their own challenges, but maintaining a healthy interest in using new technology is an important skill to have at one's fingertips.
This project also saw us implementing co-authored commits in our pull requests when we were coding as a group. When separated, we were diligent abouut keeping each other abreast of changes made through PRs on Github and rebasing our local code.
- Material-UI
- React JS
- Redux
- Redux Thunk
- Node.js
- Express
- Knex
- PostgresQL
- Jest/Enzyme/Supertest
- Sass
- Travis-CI
Base URL: http://localhost:3001
GET /api/v1/projects
[
{
"id": 1,
"project_name": "Project 1",
"created_at": "2019-05-09T01:10:24.209Z",
"updated_at": "2019-05-09T01:10:24.209Z"
},
{
"id": 2,
"project_name": "Project 2",
"created_at": "2019-05-09T01:10:24.219Z",
"updated_at": "2019-05-09T01:10:24.219Z"
},
{
"id": 3,
"project_name": "Project 3",
"created_at": "2019-05-09T01:10:24.220Z",
"updated_at": "2019-05-09T01:10:24.220Z"
}
]
GET /api/v1/projects/:id
[
{
"id": 1,
"project_name": "Project 1",
"created_at": "2019-05-09T01:10:24.209Z",
"updated_at": "2019-05-09T01:10:24.209Z"
}
]
GET /api/v1/projects/:id/palettes
[
{
"id": 1,
"project_id": 1,
"color_one": "#00FF00",
"color_two": "#008000",
"color_three": "#00FFFF",
"color_four": "#3374FF",
"color_five": "#FF335E",
"created_at": "2019-05-09T01:10:24.224Z",
"updated_at": "2019-05-09T01:10:24.224Z"
},
{
"id": 2,
"project_id": 1,
"color_one": "#00FF00",
"color_two": "#008000",
"color_three": "#00FFFF",
"color_four": "#3374FF",
"color_five": "#FF335E",
"created_at": "2019-05-09T01:10:24.228Z",
"updated_at": "2019-05-09T01:10:24.228Z"
}
]
GET /api/v1/projects/:id/palettes/:id
[
{
"id": 1,
"project_id": 1,
"color_one": "#00FF00",
"color_two": "#008000",
"color_three": "#00FFFF",
"color_four": "#3374FF",
"color_five": "#FF335E",
"created_at": "2019-05-09T01:10:24.224Z",
"updated_at": "2019-05-09T01:10:24.224Z"
}
]
POST /api/v1/projects
{
project_name: <String>
}
- Status 201
{
"id": 25
}
POST /api/v1/projects/:id/palettes
{
"color_one": <String>,
"color_two": <String>,
"color_three": <String>,
"color_four": <String>,
"color_five": <String>
}
- Status 201
{
"id": 13
}
PUT /api/v1/projects/:id
{
"project_name": <String>
}
- Status 200
PUT /api/v1/projects/:id/palettes/:id
{
"color_one": <String>,
"color_two": <String>,
"color_three": <String>,
"color_four": <String>,
"color_five": <String>
}
- Status 200
DELETE /api/v1/projects/:id
{
"id": <Integer>
}
- Status 200
DELETE /api/v1/projects/:id/palettes/:id
{
"id": <Integer>
}
- Status 200
- Add more query params
- Add Sign-in
- Incorporate OAuth