Skip to content

Latest commit

 

History

History
102 lines (73 loc) · 4.35 KB

CONTRIBUTING.md

File metadata and controls

102 lines (73 loc) · 4.35 KB

Contributing to Impler

Thank you for showing an interest in contributing to Impler! All kinds of contributions are valuable to us. In this guide, we will cover how you can quickly onboard and make your first contribution.

Submitting an issue

Before submitting a new issue, please search the issues and discussion tabs. Maybe an issue or discussion already exists and might inform you of workarounds. Otherwise, you can give new information.

While we want to fix all the issues, before fixing a bug we need to be able to reproduce and confirm it. Please provide us with a minimal reproduction scenario using a repository or Gist. Having a live, reproducible scenario gives us the information without asking questions back & forth with additional questions like:

  • What is failing or not working?
  • Idea about context like Self-Hosted/React/Iframe-embed environment
  • Steps to reproduce

You can open a new issue from here.

Projects setup and Architecture

Requirements

  • Node.js version v20.13.1
    • pnpm version 8.9.0
  • MongoDB
  • Localstack or AWS S3 credentials (for storing files)
  • RabbitMQ for microservices to interact with each other

Using docker is the easiest way to set up MongoDB, LocalStack, and RabbitMQ services.

Setting Up the Project Locally

To set up the project locally, follow these steps:

  1. Fork the Repository:
    Start by forking the repository to your own GitHub account. This creates a copy of the repository under your account, allowing you to freely make changes without affecting the original project.

  2. Clone the Repository:
    Once forked, clone the repository to your local machine using the following command:

    git clone [email protected]:your-username/repository-name.git
    

Replace your-username with your GitHub username and repository-name with the name of the repository you forked. This command will create a local copy of the project on your machine, enabling you to work on it offline.

After cloning your fork, follow these steps to set up the project locally,

  1. Install the dependencies by running:
    pnpm install
  2. Do setup for projects by running:
    pnpm setup:project
  3. In a terminal, start the dependencies (rabbitmq, mongodb and minio) as Docker containers by running the following command:
    docker compose -f docker/dependencies.compose.yml up -d

Start the application by running the following commands.

  1. Start backend API:
    pnpm start:api
  2. Start web portal:
    pnpm start:web
  3. Start embed script:
    pnpm start:embed
  4. Start import widget:
    pnpm start:widget
  5. Start queue-manager:
    pnpm start:queue-manager
  6. Start interacting with web UI by visiting:
    http://localhost:4200
    

Missing a Feature or Facing an Issue?

If a feature is missing or you're experiencing an issue, you can report it here.

Coding guidelines

To ensure consistency throughout the source code, please keep these rules in mind as you are working:

  • All features or bug fixes must be tested.
  • We use Eslint default rule guide, with minor changes. An automated formatter is available using prettier.

Need help? Questions and suggestions

Questions, suggestions, and thoughts are most welcome. Feel free to open a GitHub Discussion. We can also be reached on our Discord Server.

Ways to contribute

  • Use a platform and try importing files and share your thoughts
  • Help with open issues or create your own
  • Share your thoughts and suggestions with us over discord
  • Help create tutorials and blog posts
  • Request a feature by submitting a proposal
  • Report a bug
  • Improve documentation - fix incomplete or missing docs, bad wording, examples or explanations.