Skip to content

eifzed/makaji

Repository files navigation

makaji

This repository is a mock backend service for a recipe browser application where people can find delicious recipes based on the ingredients and tools that they have, food preference, and their cooking mastery level.

Introduction

This backend application is written in Go (Golang) which the client can connect via RESTful API's with MongoDB as its main database, Elasticsearch as its secondary database for search, and Redis for caching. This backend service is also equipped with a CI/CD tool using Github Actions to test and deploy to an Azure cloud server. Although the tech stacks seem way too overkill for a mock service, they are chosen as a proof of concept of how such an application would be designed in a large production environment.

Prerequisites

  • Golang 1.21 or later
  • Docker Coompose

Setup Instructions

  1. Clone the Repository:

    git clone https://github.com/eifzed/makaji.git
  2. Navigate to the Project Directory:

    cd makaji
  3. Setup DB:

    docker-compose up
  4. Setup Config File

    cp ./files/etc/makaji-config/makaji-config.development.yaml.example ./files/etc/makaji-config/makaji-config.development.yaml
    cp ./files/etc/makaji-secret/makaji-secret.development.json.example ./files/etc/makaji-secret/makaji-secret.development.json
  5. Run Application:

    docker-compose up --build
  6. Access the Application: Once the containers are up and running, you can access the GoLang application at http://localhost:8080.

Directory Structure

  • cmd/: Contains the GoLang application source code.
  • files/: Contains the configuration files.
  • internal/: Contains internal source code.
  • lib/: Contains common library.
  • model/: Contains data model.
  • Dockerfile: Dockerfile for building the GoLang application container.
  • docker-compose.yml: Docker Compose configuration file for managing containers.
  • README.md: This README file.

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

License

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published