Skip to content

A simple application that allows the user to create their own customized memes from any of 100 popular meme templates. The user can Create, Read, Update, and Delete a personal gallery of customized memes, share memes to several popular social media sites. This site leverages the ImgFlip Meme API and uses an Express backend with MongoDB to store …

License

Notifications You must be signed in to change notification settings

bradyjcamp/meme-craft

 
 

Repository files navigation

MemeCraft

Authors: Brady Camp, Harvey Francois, Jeffrey Jenkins, Micha Davis, Michael Campbell Version: 1.4.0

Overview

A simple application that allows the user to create their own customized memes from any of 100 popular meme templates. The user can Create, Read, Update, and Delete a personal gallery of customized memes, share memes to several popular social media sites. This site leverages the ImgFlip Meme API and uses an Express backend with MongoDB to store user creations.

Problem Domain

Sometimes you can't find the meme that adequately expresses how you feel. This site will aim to provide a quick, easy interface for creating custom memes to amaze your friends.

Getting Started

Download the code onto your local machine and implement the following code into your terminal:

npm i
npm start

Architecture

Technologies

  • JavaScript
  • ReactJS
  • React-Bootstrap
  • MongoDB
  • Express
  • NodeJS
  • Masonry

API Endpoints

GET /memes Response

{
  "success": true,
  "data": {
    "memes": [
      {
        "id": "181913649",
        "name": "Drake Hotline Bling",
        "url": "https://i.imgflip.com/30b1gx.jpg",
        "width": 1200,
        "height": 1200,
        "box_count": 2
      },
      {
        "id": "87743020",
        "name": "Two Buttons",
        "url": "https://i.imgflip.com/1g8my4.jpg",
        "width": 600,
        "height": 908,
        "box_count": 3
      },
      // ...and 98 more just like this
    ]
  }
}

POST /memes Response

Success:

{
  "success": true,
  "data": {
    "url": "https://i.imgflip.com/67k84i.jpg",
    "page_url": "https://imgflip.com/i/67k84i"
  }
}

Failure:

{
    "success": false,
    "error_message": "Some hopefully-useful statement about why it failed"
}

GET /memeDB Response

{
  "_id": "62295a81bde528b2acb30f09",
  "userName": "[email protected]",
  "url": "https://i.imgflip.com/683crc.jpg",
  "page_url": "https://imgflip.com/i/683crc",
  "boxes": [
    {
      "text": "Our merge"
    },
    {
      "text": "GitHub review"
    },
    {
      "text": "Failed to deploy"
    }
  ],
  "template": {
    "id": "79132341",
    "name": "Bike Fall",
    "url": "https://i.imgflip.com/1b42wl.jpg",
    "width": 500,
    "height": 680,
    "box_count": 3
  },
  "__v": 0
}

POST /memesDB Response

{
  "userName":"[email protected]",
  "url":"https://i.imgflip.com/68c0d6.jpg",
  "page_url":"https://imgflip.com/i/68c0d6",
  "boxes":
    [
      {
        "text":"Work hard on Documentation"
      },
      {
        "text":"Wing it"
      },
      {
        "text":"Me"
      }
    ],
  "template":
    {
      "id":"87743020",
      "name":"Two Buttons",
      "url":"https://i.imgflip.com/1g8my4.jpg",
      "width":600,
      "height":908,
      "box_count":3
    },
  "_id":"622ba80e149f0ec32926943b",
  "__v":0
}

PUT /memeDB:id Response

Status: 200 OK

{
  "_id": "62295a81bde528b2acb30f09",
  "url": "https://i.imgflip.com/30b1gx.jpg",
  "boxes": []
}

DELETE /memeDB:id Response

Status: 200 OK

meme deleted

Credit and Collaborations

More Documentation

Documentation for this project can be found in the MemeCraft Documents repository.

About

A simple application that allows the user to create their own customized memes from any of 100 popular meme templates. The user can Create, Read, Update, and Delete a personal gallery of customized memes, share memes to several popular social media sites. This site leverages the ImgFlip Meme API and uses an Express backend with MongoDB to store …

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 92.1%
  • JavaScript 7.6%
  • HTML 0.3%