Thank you for considering contributing to Omniscope! This document provides guidelines and instructions to help you get started with your contributions.
Omniscope is a visual management tool developed by EximiaCo that integrates data from various tools used within the company, such as PipeDrive, Everhour, Ontology, and more. The user interface and codebase are both in English.
The project is divided into two main parts:
- Backend: A Python-based GraphQL API
- Frontend: A Next.js application
To contribute to Omniscope, you will need:
- Python 3.12.2
- Node.js (latest LTS version)
- npm or yarn
Docker is not required for development but is used in the deployment process.
-
Fork the Repository:
- Navigate to the Omniscope GitHub repository.
- Click the "Fork" button at the top right to create your own copy of the repository.
-
Clone Your Forked Repository:
- Clone your forked repository to your local machine.
git clone https://github.com/your-username/omniscope.git cd omniscope
-
Backend Setup:
- Create a Python virtual environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Install the required dependencies:
pip install -r backend/requirements.txt
- Set up environment variables:
- Copy
backend/.env.template
tobackend/.env
- Fill in the necessary values in
backend/.env
- Copy
- Create a Python virtual environment:
-
Frontend Setup:
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install # or yarn install
- Set up environment variables:
- Copy
.env.local.example
to.env.local
- Fill in the necessary values in
.env.local
- Copy
- Navigate to the frontend directory:
-
Backend:
- From the root directory:
python backend/app.py
- From the root directory:
-
Frontend:
- From the frontend directory:
npm run dev # or yarn dev
- From the frontend directory:
We use a Feature Branch workflow. Here's the recommended process:
-
Ensure an Issue Exists:
- Before starting any implementation, make sure there is an Issue that clearly describes what needs to be done.
-
Sync Your Fork:
- Before starting on a new feature or fix, sync your fork with the upstream repository.
-
Create a Feature Branch:
- Create a new branch for your feature or bugfix.
-
Make Changes:
- Implement your changes in the codebase.
-
Commit Your Changes:
- Commit your changes with a clear and concise message in English.
-
Push Your Feature Branch:
- Push your feature branch to your forked repository on GitHub.
-
Create a Pull Request:
- Create a pull request (PR) from your feature branch to the main branch of the upstream repository.
-
Code Review:
- One of the maintainers will review your PR.
- Backend: Follow PEP8 style guide for Python code.
- Frontend: Follow the existing code style and structure in the Next.js application.
- Backend: Currently, the project does not have unit tests in place, but they will be added soon.
- Frontend: Run tests using
npm test
oryarn test
.
- Keep the README.md and other documentation files up to date.
- Document any significant changes or new features in the relevant architectural decision records (ADRs) in the
doc/architectural-decision-records
directory.
Please treat all contributors with respect. We aim to maintain a positive and collaborative environment.
- GitHub Issues: For project-related discussions, please use GitHub Issues.
- Email: Maintainers can also be contacted via email for more specific inquiries.