Skip to content

Nemurs/SuperEats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SuperEats

Please visit my website at:

supereats.onrender.com

Splash Page

~Home Page~

Screen Shot 2023-06-29 at 9 19 46 PM

~Orders~

Screen Shot 2023-06-29 at 9 21 09 PM

~User Profile Page~

Screen Shot 2023-06-29 at 9 20 39 PM

For more info about this project please check out my wiki!

API Routes

~Users~

POST api/auth/signup

Sign up and automatically log in user.

Request:

  • Headers:

    • Content-Type: application/json
  • Body ("artist" field not required):

    {
        "email": "[email protected]",
        "password": "password",
        "first_name": "Demo",
        "last_name": "User",
        "phone_number": "31012345678",
        "address": "123 Sesame St",
        "city": "Los Angeles",
        "state": "CA"
    }

Successful Response Body:

{
    "id": 1,
    "address": "123 Sesame St",
    "city": "Los Angeles",
    "email": "[email protected]",
    "firstName": "Demo",
    "lastName": "User",
    "phoneNumber": "31012345678",
    "state": "CA",
    "images": [],
    "userCarts": [],
    "userOrders": [],
    "userReviews": []
}

POST api/auth/login

Log in a user.

Request:

  • Headers:

    • Content-Type: application/json
  • Body (all fields required):

    {
        "email": "[email protected]",
        "password": "password"
    }

Successful Response Body:

{
    "id": 1,
    "address": "123 Sesame St",
    "city": "Los Angeles",
    "email": "[email protected]",
    "firstName": "Demo",
    "lastName": "User",
    "phoneNumber": "31012345678",
    "state": "CA",
    "images": [
        {
            "id": 1,
            "preview": true,
            "url": "https://seeklogo.com/images/T/teenage-mutant-ninja-turtles-logo-CA38586452-seeklogo.com.png",
            "userId": 1
        }
    ],
    "userCarts": [
        {
            "businessId": 1,
            "businessName": "SonoraTown",
            "id": 1,
            "timeCreated": "Mon, 19 Jun 2023 17:13:37 GMT",
            "timeUpdated": null,
            "userId": 1
        }
    ],
    "userOrders": [
        {
            "cartId": 1,
            "cartInfo": {
                "businessId": 1,
                "businessName": "SonoraTown",
                "id": 1,
                "timeCreated": "Mon, 19 Jun 2023 17:13:37 GMT",
                "timeUpdated": null,
                "userId": 1
            },
            "id": 1,
            "item": {
                "business_id": 1,
                "category": "From the Grill",
                "id": 1,
                "name": "Chivichanga",
                "price": 6.0
            },
            "itemId": 1,
            "user": {
                "address": "123 Sushi Ln",
                "city": "Los Angeles",
                "email": "[email protected]",
                "firstName": "Demo",
                "id": 1,
                "lastName": "Lition",
                "phoneNumber": "1234567890",
                "state": "CA"
            },
            "userId": 1
        },
    ],
    "userReviews": [
        {
            "businessId": 1,
            "cartId": 1,
            "id": 1,
            "rating": 5,
            "reviewText": "Awesome menu",
            "userFirstName": "Demo",
            "userId": 1
        }
    ]
}

GET api/auth/logout

Log out user.

Successful Response Body:

{
    "message": "User logged out",
}

~Businesses~

GET api/business

Returns all the albums from the database.

Successful Response Body:

{
    "Businesses": [
        {
            "address": "36322 James Spurs Suite 700",
            "avgItemPrice": 15.875,
            "businessRating": 5.0,
            "businessReviews": [
                {
                    "businessId": 1,
                    "cartId": 1,
                    "id": 1,
                    "rating": 5,
                    "reviewText": "Awesome menu",
                    "userFirstName": "Demo",
                    "userId": 1
                }
            ],
            "carts": [
                {
                    "businessId": 1,
                    "businessName": "SonoraTown",
                    "id": 1,
                    "timeCreated": "Mon, 19 Jun 2023 17:13:37 GMT",
                    "timeUpdated": null,
                    "userId": 1
                }
            ],
            "category": "Mexican",
            "city": "Los Angeles",
            "email": "[email protected]",
            "id": 1,
            "images": [
                {
                    "businessId": 1,
                    "id": 1,
                    "preview": true,
                    "url": "https://tb-static.uber.com/prod/image-proc/processed_images/0b052f97b0251c750d797b240b40a7ed/c73ecc27d2a9eaa735b1ee95304ba588.jpeg"
                }
            ],
            "items": [
                {
                    "business": {
                        "address": "36322 James Spurs Suite 700",
                        "businessRating": 5.0,
                        "category": "Mexican",
                        "city": "Los Angeles",
                        "email": "[email protected]",
                        "id": 1,
                        "name": "SonoraTown",
                        "phoneNumber": "3232227304",
                        "state": "CA"
                    },
                    "business_id": 1,
                    "category": "From the Grill",
                    "id": 1,
                    "images": [
                        {
                            "id": 1,
                            "itemId": 1,
                            "preview": true,
                            "url": "https://cn-geo1.uber.com/image-proc/resize/eats/format=webp/width=550/height=440/quality=70/srcb64=aHR0cHM6Ly90Yi1zdGF0aWMudWJlci5jb20vcHJvZC9pbWFnZS1wcm9jL3Byb2Nlc3NlZF9pbWFnZXMvMGU4ZTdlOWRlY2ZhZWI1MDIwOTMzOWZhYjYxMGMwYjkvNTk1NGJjYjAwNmIxMGRiZmQwYmMxNjBmNjM3MGZhZjMuanBlZw=="
                        }
                    ],
                    "itemOrders": [
                        {
                            "cartId": 1,
                            "id": 1,
                            "itemId": 1,
                            "userId": 1
                        }
                    ],
                    "name": "Chivichanga",
                    "price": 6.0
                }
            ]
        }
    ]
}

GET api/business/:businessId

Returns one album and all of its songs from the database.

Successful Response Body:

{
    "Businesses":
        {
            "address": "36322 James Spurs Suite 700",
            "avgItemPrice": 15.875,
            "businessRating": 5.0,
            "businessReviews": [
                {
                    "businessId": 1,
                    "cartId": 1,
                    "id": 1,
                    "rating": 5,
                    "reviewText": "Awesome menu",
                    "userFirstName": "Demo",
                    "userId": 1
                }
            ],
            "carts": [
                {
                    "businessId": 1,
                    "businessName": "SonoraTown",
                    "id": 1,
                    "timeCreated": "Mon, 19 Jun 2023 17:13:37 GMT",
                    "timeUpdated": null,
                    "userId": 1
                }
            ],
            "category": "Mexican",
            "city": "Los Angeles",
            "email": "[email protected]",
            "id": 1,
            "images": [
                {
                    "businessId": 1,
                    "id": 1,
                    "preview": true,
                    "url": "https://tb-static.uber.com/prod/image-proc/processed_images/0b052f97b0251c750d797b240b40a7ed/c73ecc27d2a9eaa735b1ee95304ba588.jpeg"
                }
            ],
            "items": [
                {
                    "business": {
                        "address": "36322 James Spurs Suite 700",
                        "businessRating": 5.0,
                        "category": "Mexican",
                        "city": "Los Angeles",
                        "email": "[email protected]",
                        "id": 1,
                        "name": "SonoraTown",
                        "phoneNumber": "3232227304",
                        "state": "CA"
                    },
                    "business_id": 1,
                    "category": "From the Grill",
                    "id": 1,
                    "images": [
                        {
                            "id": 1,
                            "itemId": 1,
                            "preview": true,
                            "url": "https://cn-geo1.uber.com/image-proc/resize/eats/format=webp/width=550/height=440/quality=70/srcb64=aHR0cHM6Ly90Yi1zdGF0aWMudWJlci5jb20vcHJvZC9pbWFnZS1wcm9jL3Byb2Nlc3NlZF9pbWFnZXMvMGU4ZTdlOWRlY2ZhZWI1MDIwOTMzOWZhYjYxMGMwYjkvNTk1NGJjYjAwNmIxMGRiZmQwYmMxNjBmNjM3MGZhZjMuanBlZw=="
                        }
                    ],
                    "itemOrders": [
                        {
                            "cartId": 1,
                            "id": 1,
                            "itemId": 1,
                            "userId": 1
                        }
                    ],
                    "name": "Chivichanga",
                    "price": 6.0
                }
            ]
        }
}

~Orders & Carts ~

POST api/order

Make a cart and attach orders to it*

* Login REQUIRED

Request:

  • Headers:

    • Content-Type: application/json
  • Body (all fields required):

    {
        "user_id": 1,
        "business_id": 1,
        "item_ids": [
            1,
            2,
            3
        ]
    }

Successful Response Body:

{
    "message": "Successfully added 3 orders for user 1"
}

Error Response 403: Unauthorized

{
    "errors": "bad user_id"
}

DELETE api/cart/:cartId

Delete a cart

* Login REQUIRED and User MUST own the cart

Successful Response Body:

{
	"message":  "Successfully deleted order :cartId"
}

Error Response 400: Bad Request

{
    "errors": "cart not found"
}

Error Response 403: Unauthorized

{
    "errors": "can only delete your own cart"
}

DELETE api/order/:orderId

Delete an order

* Login REQUIRED and User MUST own the order

Successful Response Body:

{
	"message":  "Successfully deleted order :orderId"
}

Error Response 400: Bad Request

{
    "errors": "order not found"
}

Error Response 403: Unauthorized

{
    "errors": "can only delete your own order"
}

~Reviews~


POST api/review

Create a review*

* Login REQUIRED

Request:

  • Headers:

    • Content-Type: application/json
  • Body (all fields required):

    {
        "review_text": "This place is bussin'",
        "rating": 5,
        "business_id": 1,
        "user_id": 1,
        "cart_id": 1
    }

Successful Response Body:

    {
        "message": "Successfully added review for user 1"
    }

Error Response 403: Unauthorized

{
    "errors": "bad user_id"
}

PUT api/review/:reviewId

Update a review*

* Login REQUIRED and User MUST own the review

Request:

  • Headers:

    • Content-Type: application/json
  • Body (all fields required):

    {
        "review_text": "This place is bussin'",
        "rating": 5
    }

Successful Response Body:

    {
        "message": "Successfully edited review for user 1"
    }

Error Response 403: Unauthorized

{
    "errors": "can only edit your own review"
}

DELETE api/review/:reviewId

Deletes a review*

* Login REQUIRED and User MUST own the review

Successful Response Body: Successful Response Body:

    {
        "message": "Successfully delete review 1"
    }

Error Response 403: Unauthorized

{
    "errors": "can only delete your own review"
}

Releases

No releases published

Packages

No packages published