Recipe Community
Archived

Recipe Community

A full stack recipe community with user interaction and recipe sharing.

Express.jsPostmanReact.jsRESTAxiosMongoDBMongooseGridFSTypeScript
GitHub Project

This full-stack application lets you create, share, and discover recipes. Users can:

  • Add new recipes with details steps and ingredients
  • Comment on and rate existing recipes
  • Save favorites

Admins get extra features for managing users, recipes, and reviews.

Technologies

  • Frontend: Built with React, leveraging Redux for state management, Axios for API interaction, and Material-UI for styling.

  • Backend: Powered by Express.js and MongoDB, with server-side sessions for secure authentication/authorization and GridFS for user file management. It provides routes for users, recipes, storage, and reviews, and auto-generates API documentation with custom middleware.

  • Testing & Deployment: Includes Postman collections for testing and Docker configurations, as well as CI/CD pipelines for Docker build and deployment.

docker-compose.yml
version: '3'

services:
  frontend:
    image: meinya/recipe-fe
    restart: unless-stopped
    ports:
      - "7120:80"
    environment:
      - "TZ=America/Toronto"

  backend:
    image: meinya/recipe-be
    restart: unless-stopped
    ports:
      - "9100:8000"
    environment:
      - "TZ=America/Toronto"
      - "PORT=8000"
      - "MONGODB_URI=mongodb://root:REPLACE_ME@mongo:27017/RecipeAPI?authSource=admin"
      - "ALLOWED_ORIGINS=http://localhost:3000,https://recipe.muddy.ca"
      - "BASE_URL=https://be-recipe.muddy.ca"

  mongo:
    image: mongo
    restart: always
    volumes:
      - mongo:/data/db
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: REPLACE_ME

volumes:
  mongo:
Recipe & Reviews
Recipe & Reviews

Tags:

Express.js,

Postman,

React.js,

REST,

Axios,

MongoDB,

Mongoose,

GridFS,

TypeScript

Previous
File Deduplication (Docker)