diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..c3b625d9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,13 @@ +blank_issues_enabled: false +contact_links: + - name: Security Contact + about: Please report security vulnerabilities to security@learnhouse.app + - name: Question or Problem + about: Ask a question or ask about a problem in GitHub Discussions. + url: https://github.com/learnhouse/learnhouse/discussions/categories/questions + - name: Feature Request + about: To suggest an idea or ask about a feature, please start with a question saying what you would like to achieve. There might be a way to do it already. + url: https://github.com/learnhouse/learnhouse/discussions/categories/questions + - name: Show and tell + about: Show what you built with LearnHouse or to be used with LearnHouse. + url: https://github.com/learnhouse/learnhouse/discussions/categories/show-and-tell diff --git a/.github/ISSUE_TEMPLATE/verified.yml b/.github/ISSUE_TEMPLATE/verified.yml new file mode 100644 index 00000000..41b0949a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/verified.yml @@ -0,0 +1,22 @@ +name: Verified +description: Someone from the team allowed you to create an issue here +body: + - type: markdown + attributes: + value: | + Thanks for your interest in LearnHouse πŸ’– + + If you are not someone from the team or the team didn't ask you directly to create an issue here, please start the conversation in a [Question in GitHub Discussions](https://github.com/learnhouse/learnhouse/discussions/categories/questions) instead. + - type: checkboxes + id: verified + attributes: + label: Verified issue + description: Confirm that you are allowed to create an issue here. + options: + - label: Someone from the team allowed me to create an issue here + required: true + - type: textarea + id: content + attributes: + label: Issue Content + description: Add the content of the issue here. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..1a88125b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,72 @@ +# 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` + + docker-compose up -d + +Initiate a dev environment, please check the official guide [here](https://docs.learnhouse.app/technical-docs/dev-env) + +## 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 +- **MongoDB** - NoSQL 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/technical-docs/dev-env) + +#### Environment Files + +Please check if you initiated your `.env` files, here is a [guide](https://docs.learnhouse.app/technical-docs/dev-env) 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 diff --git a/README.md b/README.md index 5f33ddd4..b1acd9b1 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,12 @@ - -

-LearnHouse is an open source platform that makes it easy for anyone to provide world-class educational content and it offers a variety of content types : Dynamic Pages, Videos, Documents & more.. +LearnHouse is an open source platform that makes it easy for anyone to provide world-class educational content and it offers a variety of content types : Dynamic Pages, Videos, Documents & more.. -## Progress +## Progress 🚧 LearnHouse is still on early development (alpha) and should not be used (yet) on production, as we reach stability we will release a stable version and add more features. @@ -17,56 +15,57 @@ LearnHouse is an open source platform that makes it easy for anyone to provide w - πŸ“„βœ¨Dynamic notion-like pages - πŸ‘¨β€πŸŽ“ Easy to use - πŸ‘₯ Multi-Organization -- πŸ“Ή Supports Uploadable Videos and external videos like YouTube +- πŸ“Ή Supports Uploadable Videos and external videos like YouTube - πŸ“„ Supports documents like PDF - 🍱 Course Collections -- πŸ™‹ Quizzes -- πŸ‘Ÿ Course progress -- ⚑ (Incoming) Live Collaboration +- πŸ™‹ Quizzes +- πŸ‘Ÿ Course progress +- ⚑ (Incoming) Live Collaboration - More to come -## Community +## Community -Please visit our [Discord](https://discord.gg/CMyZjjYZ6x) community πŸ‘‹ +Please visit our [Discord](https://discord.gg/CMyZjjYZ6x) community πŸ‘‹ -## Contributing +## Contributing -Thank you for you interest πŸ’–, here is how you can help : - - Getting started - - Submit a bug report - - Check good first issues - - Spread the word and share the project with your friends +Thank you for you interest πŸ’–, here is how you can help : -## Documentation +- [Getting Started](/CONTRIBUTING.md) +- Submit a bug report +- [Check good first issues & Help Wanted](https://github.com/learnhouse/learnhouse/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+label%3A%22help+wanted%22) +- Spread the word and share the project with your friends - - Features - - Courses - - Activities - - Dynamic Activities - - Video Activities - - Documents Activities - - Collections - - Trail -- Self Hosting - - Overview - - Organization Hosting Modes - - Docker / Kubernetes - - Using Vercel - - Content Storage - - Using the FileSystem - - Using AWS S3 or Cloudflare R2 -- Technical Docs - - Infrastructure Overview - - Database overview - - API Overview +## Documentation + +- Features + - [Courses](https://docs.learnhouse.app/features/courses) + - [Activities](https://docs.learnhouse.app/features/activities) + - [Dynamic Pages](https://docs.learnhouse.app/features/activities/dynamic-pages) + - [Video Activities](https://docs.learnhouse.app/features/activities/video) + - [Document Activities](https://docs.learnhouse.app/features/activities/documents) + - [Collections](https://docs.learnhouse.app/features/collections) + - [Trail](https://docs.learnhouse.app/features/trail) +- Self Hosting + - [Overview](https://docs.learnhouse.app/technical-docs/self-hosting/overview) + - [Organization Hosting Modes](https://docs.learnhouse.app/technical-docs/self-hosting/organization-hosting-modes) + - [Docker & Kubernetes](https://docs.learnhouse.app/technical-docs/self-hosting/docker-and-kube) + - [Using Vercel](https://docs.learnhouse.app/technical-docs/self-hosting/vercel) + - Content Storage + - [Using the Filesystem](https://docs.learnhouse.app/technical-docs/self-hosting/content-storage/filesystem) + - [Using AWS S3 or CloudFlare R2](https://docs.learnhouse.app/technical-docs/self-hosting/content-storage/s3) +- Technical Docs + - [Infrastructure Overview](https://docs.learnhouse.app/technical-docs/infra-overview) + - Database overview + - API Overview ## Tech LearnHouse uses a number of open source projects to work properly: - **Next.js** (13 with the App Directory) - The React Framework -- **TailwindCSS** - Styling -- **Radix UI** - Accessible UI Components +- **TailwindCSS** - Styling +- **Radix UI** - Accessible UI Components - **Tiptap** - An editor framework and headless wrapper around ProseMirror - **FastAPI** - A high performance, async API framework for Python - **YJS** - Shared data types for building collaborative software @@ -75,6 +74,6 @@ LearnHouse uses a number of open source projects to work properly: ## A word -Learnhouse is made with πŸ’œ, from the UI to the features it is carefully designed to make students and teachers lives easier and make education software more enjoyable. +Learnhouse is made with πŸ’œ, from the UI to the features it is carefully designed to make students and teachers lives easier and make education software more enjoyable. -Thank you and have fun using/developing/testing Learnhouse ! +Thank you and have fun using/developing/testing LearnHouse !