diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a0f2b96a9..a99433748 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -90,6 +90,35 @@ Appwrite uses an internal micro-framework called Litespeed.js to build simple UI After finishing the installation process, you can start writing and editing code. + +#### Advanced Topics +We love to create issues that are good for begginers and label them as `good for begginers` or `hacktoberfest`, but some more advanced topics might require extra knowledge. Below is a list of links you can use to learn more about some of the more advance topics that will help you master the Appwrite codebase. + +##### Tools and Libs +- [Docker](https://www.docker.com/get-started) +- [PHP FIG](https://www.php-fig.org/) - [PSR-1](https://www.php-fig.org/psr/psr-1/) and [PSR-4](https://www.php-fig.org/psr/psr-4/) +- [PHP Swoole](https://www.swoole.co.uk/) + +Learn more at our [Technology Stack](## Technology Stack) section. + +##### Network and Protocols +- [OSI Model](https://en.wikipedia.org/wiki/OSI_model) +- [TCP vs UDP](https://www.guru99.com/tcp-vs-udp-understanding-the-difference.html#:~:text=TCP%20is%20a%20connection%2Doriented,speed%20of%20UDP%20is%20faster&text=TCP%20does%20error%20checking%20and,but%20it%20discards%20erroneous%20packets.) +- [HTTP](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol) +- [REST API](https://en.wikipedia.org/wiki/Representational_state_transfer) +- [GraphQL](https://en.wikipedia.org/wiki/GraphQL) +- [gRPC](https://en.wikipedia.org/wiki/GRPC) + +##### Architecture +- [Microservices vs Monolithic](https://www.mulesoft.com/resources/api/microservices-vs-monolithic#:~:text=Microservices%20architecture%20vs%20monolithic%20architecture&text=A%20monolithic%20application%20is%20built%20as%20a%20single%20unit.&text=To%20make%20any%20alterations%20to,formally%20with%20business%2Doriented%20APIs.) +- [MVVM](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel) - Appwrite console architecture + +##### Security +- [Appwrite Auth and ACL](https://github.com/appwrite/appwrite/blob/0.7.x/docs/specs/authentication.drawio.svg) +- [OAuth](https://en.wikipedia.org/wiki/OAuth) +- [Encryption](https://medium.com/searchencrypt/what-is-encryption-how-does-it-work-e8f20e340537#:~:text=Encryption%20is%20a%20process%20that,%2C%20or%20decrypt%2C%20the%20information.) +- [Hashing](https://searchsqlserver.techtarget.com/definition/hashing#:~:text=Hashing%20is%20the%20transformation%20of,it%20using%20the%20original%20value.) + ## Architecture Appwrite's current structure is a combination of both [Monolithic](https://en.wikipedia.org/wiki/Monolithic_application) and [Microservice](https://en.wikipedia.org/wiki/Microservices) architectures, but our final goal, as we grow, is to be using only microservices.