learnhouse/CONTRIBUTING.md

74 lines
2.6 KiB
Markdown

# Contributing to LearnHouse
## Backend Codebase
### Tech
- **FastAPI** - A high performance, async API framework for Python
- **Pydantic** - Data validation and settings management using Python type annotations.
- **Ruff** - An extremely fast Python linter, written in Rust.
- **Motor** - the async Python driver for MongoDB and Tornado or asyncio
- **Uvicorn** - an ASGI web server implementation for Python.
### Get started
Use the Docker Image available in `./Dockerfile`
> Make sure your container runtime has at least 4GB of RAM allocated, as default settings may vary by tool.
docker-compose up -d
Initiate a dev environment, please check the official guide [here](https://docs.learnhouse.app/setup-dev-environment)
## Frontend Codebase
### Tech
- **Next.js** (13 with the App Directory) - The React Framework
- **TailwindCSS** - Styling
- **Radix UI** - Accessible UI Components
- **Tiptap** - An editor framework and headless wrapper around ProseMirror
- **YJS** - Shared data types for building collaborative software
- **PostgreSQL** - SQL Database
- **React** - duh
### Get started
Use the Docker Image available in `front/Dockerfile`, or install the frontend package on your computer for greater performance.
#### Start the Backend server first
You need to have the backend running, to initiate a dev environment please check the official guide [here](https://docs.learnhouse.app/setup-dev-environment)
#### Environment Files
Please check if you initiated your `.env` files, here is a [guide](https://docs.learnhouse.app/setup-dev-environment) on how to do it.
#### Install the frontend package
npm i
#### Run in Dev environment
npm run dev
## Submitting Contributions
This project follows [GitHub's standard forking model](https://guides.github.com/activities/forking/). Please fork the project to submit pull requests.
### Submitting a bug/fix
- Start an issue [here](https://github.com/learnhouse/learnhouse/issues) to report the bug.
- Please include a detailed description of the bug and how it can be reproduced.
- Someone from the team will review the issue and will give you a go ahead.
### Submitting a feature / idea
- Start a Discussion [here](https://github.com/learnhouse/learnhouse/discussions/categories/ideas) to propose your idea and how it should be implemented.
- Someone from the team will review your idea and will give you a go ahead.
- Start an issue & link the discussion to it.
- Clone your fork locally
- Create a new branch and make your commits
- Push your commits to your forked repo
- Make a Pull request
- Code will be added after review