Giter Club home page Giter Club logo

bar-fork's Introduction

Release Software License Go Report Card GoDoc

Le Bar

Le Bar is a monorepository containing both the frontend and backend components of a system designed to manage various aspects of a bar's operations. This document provides an overview of the project structure, setup instructions, and available commands.

Presentation

presentation

Dependencies

Before you begin, ensure you have the following dependencies installed:

  • Go: The Go programming language is required to build and run the backend. You can download and install Go from the official website.

  • Node.js: Node.js is required to build and run the frontend. Download and install Node.js from the official website.

  • Go-Task (task): Task is a simple task runner for Go projects. It's used in this project for automating setup and regeneration tasks. You can install Task by following the instructions on the GitHub repository.

Project Structure

The repository is organized into the following components:

  • backend: This folder contains the backend implementation of the application.
  • frontend: This folder encompasses the entire frontend of the application, including terminal, admin panels & public interface.
  • bar.openapi.yml: The OpenAPI specification for the project.
  • docker-compose.yml: A configuration file for Docker Compose, enabling easy deployment of the MongoDB database and Mongo Express.
  • backend/Taskfile.yml and frontend/Taskfile.yml: Contains tasks for setting up dependencies and regenerating API files using OpenAPI specifications.

Configuration

  • Backend Configuration:

    • Copy the .env.example file located at backend/.env.example to backend/.env in the development environment. Adjust the values in .env as needed for your setup.

    • Google OAuth Configuration:

      • To enable Google OAuth, you need to create a Google Cloud project and obtain OAuth client credentials.
      • Follow these steps to create and configure the Google project:
        1. Go to the Google Cloud Console.
        2. Create a new project.
        3. In the project dashboard, navigate to "APIs & Services" > "Credentials."
        4. Create OAuth client credentials. Choose "Web application" as the application type.
        5. Set the authorized redirect URIs to match your backend URI (e.g., http://localhost:8080/auth/google/callback).
        6. Once created, copy the Client ID and Client Secret.
      • Update the following environment variables in backend/.env with the obtained credentials:
        BAR_OAUTH_GOOGLE_CLIENT_ID=YOUR_CLIENT_ID
        BAR_OAUTH_GOOGLE_CLIENT_SECRET=YOUR_CLIENT_SECRET
        
  • Frontend Configuration:

    • Copy the frontend/static/config.dev.json file to frontend/static/config.json in the development environment. Modify the settings in config.json to match your preferences.

Setup

To get the project up and running, follow these steps:

  1. Start Database:

    • Run the following command to initiate the MongoDB database and Mongo Express UI:
      docker compose up -d
      
  2. Backend Setup:

    • Navigate to the backend folder.
    • Run the setup task to install backend dependencies:
      task setup
      
  3. Frontend Setup:

    • Navigate to the frontend folder.
    • Run the setup task to install frontend dependencies:
      task setup
      
  4. Regenerate API Files:

    • To regenerate API files based on OpenAPI specifications, run the following in either the backend or frontend folder, depending on which API files you need to generate (you only need to do so on bar.openapi.yml changes):
      task regen
      
  5. Backend:

    • Navigate to the backend folder.
    • Start the backend using the following command:
      go run cmd/bar/main.go
      
  6. Frontend:

    • Navigate to the frontend folder.
    • Start the frontend development server with:
      npm run dev
      

Please note that actions requiring the terminal to be "safe" require an "X-Local-Token" for route access. For such cases, ensure the frontend is redeployed on the local machine using the local token.

Contributing

Contributions to the project are welcome. If you encounter any issues or have suggestions, please submit an issue or pull request.

License

This project is licensed under the MIT License.

bar-fork's People

Contributors

yyewolf avatar bapttf avatar aripot007 avatar ciflire avatar sirsquiggle avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.