Skip to content

idrsdev/memoryapp

Repository files navigation

Table of Contents

  1. Installation
    1. Locally
      1. Install Dependencies
      2. Run
    2. Docker
  2. API Docs
    1. Open Endpoints
    2. Endpoints that require Authentication
    3. Memory related
    4. User related
    5. Comment related
    6. Reset Password
    7. Upload Image
  3. Project Structure

Installation

Locally

Install Dependencies

$ npm install

$ cp .env.example .env

set these environment variables

Run
npm run dev (:5000)

Docker

$ docker compose up
Available at http://localhost:5000/api/memory

To stop and remove containers
$ docker compose down

To run in production mode
$ docker compose -f docker-compose.yml -f docker-compose.prod.yml up
Available at http://localhost/api/memory

You can pass an additional flag -d to keep it running in background

API Docs

BaseURL : http://localhost:5000/api

Open Endpoints

Open endpoints require no Authentication.

  • Login POST /user/login/

Endpoints that require Authentication

Closed endpoints require a valid Token to be included in the header of the request. A Token can be acquired from the Login view above.

Memory related

Endpoints for viewing and manipulating the Memories.

  • Create Memory: POST /memory
  • Get Everyone's Memories: GET /memory?
  • Show Personal Memories: GET /memory/me?
  • Delete A Memory: DELETE /memory/{{MemoryId}}
  • Like A Memory: POST /memory/{{MemoryId}}/like
  • Share A Memory: POST /memory/{{MemoryId}}/share
  • Post A Comment: POST /memory/{{MemoryId}}/comment

User related

Endpoints for viewing and manipulating the Users.

  • Login: POST /user/login/
  • Create User: POST /user/
  • Verify User: GET /user/verify/{{EMAIL}}/:token
  • Resend Activation Link: POST /user/resend-activation-link

Comment related

Endpoints for viewing and manipulating the Comments.

  • Get Memory Comments: POST /comment?
  • Delete A Comment: DELETE /comment/{{CommentId}}

Reset Password

Endpoints for User's password reset.

  • Request Password Reset: POST /reset-password
  • Reset Password: POST /reset-password/:userId/:token

Upload Image

Endpoints for Uploading Image.

  • Upload Image: POST /upload/image

Project Structure

memoryapp
├─ .dockerignore
├─ .gitignore
├─ app.js
├─ config
│  └─ db.js
├─ controllers
│  ├─ commentController.js
│  ├─ memoryController.js
│  ├─ passwordResetController.js
│  └─ userController.js
├─ docker-compose.override.yml
├─ docker-compose.prod.yml
├─ docker-compose.yml
├─ Dockerfile
├─ middleware
│  ├─ authMiddleware.js
│  └─ errorMiddleware.js
├─ models
│  ├─ commentModel.js
│  ├─ likedMemoryModel.js
│  ├─ memoryModel.js
│  ├─ sharedMemoryModel.js
│  ├─ tokenModel.js
│  └─ userModel.js
├─ package-lock.json
├─ package.json
├─ README.md
├─ routes
│  ├─ commentRoutes.js
│  ├─ memoryRoutes.js
│  ├─ passwordResetRoutes.js
│  ├─ uploadRoutes.js
│  └─ userRoutes.js
├─ seeder.js
├─ server.js
├─ services
│  ├─ commentServices.js
│  ├─ memoryServices.js
│  ├─ passwordResetServices.js
│  └─ userServices.js
├─ utils
│  ├─ generateToken.js
│  ├─ sendMail.js
│  ├─ uploadImage.js
│  └─ userWithoutPassword.js
└─ validators
   ├─ memoryValidator.js
   └─ userValidator.js

About

API for a social media application where user can post, share, view, comment and like memories.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages