> For the complete documentation index, see [llms.txt](https://arif-hanif.gitbook.io/slackclone/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://arif-hanif.gitbook.io/slackclone/master.md).

# Introduction

This is a tutorial on how to setup a .NET Core GraphQL server using HotChocolate and a client in React that consumes that API.

We will be designing a simplified Slack clone. The tutorial will use both a SQL and NoSQL data store.

#### Server completed source code - <https://github.com/arif-hanif/SlackClone-Server>

#### Client completed source code - <https://github.com/arif-hanif/SlackClone-Client>

### **Tools Required**

* [Visual Studio Code](https://code.visualstudio.com/) - IDE
* [draw.io](https://www.draw.io/) - Creating data model diagrams

### Server Technologies <a href="#whatwillilearn" id="whatwillilearn"></a>

* [.NET Core 3](https://docs.microsoft.com/en-us/dotnet/core/) - General purpose cross platform development platform maintained by Microsoft
* [ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-3.0) - Framework for building modern, cloud-based, Internet-connected applications in .NET
* [HotChocolate](https://hotchocolate.io/) - Open Source GraphQL Implementation for .NET
* [MongoDB](https://www.mongodb.com/) - Open-source NoSQL Database
  * [MongoDB .NET Driver](https://mongodb.github.io/mongo-csharp-driver/) - MongoDB Provider for .NET
  * [Studio 3T](https://studio3t.com/) - GUI and IDE for MongoDb
* [PostgreSQL](https://www.postgresql.org/) - Open-source SQL Database
  * [Entity Framework Core](https://docs.microsoft.com/en-us/ef/core/) - Open Source .NET Object-Relational Mapper (ORM)
  * [pgAdmin](https://www.pgadmin.org/) - Open Source Admin interface for PostgreSQL
  * [Npgsql](http://www.npgsql.org/) - PostgreSQL Provider for .NET

### Client Technologies - React <a href="#whatwillilearn" id="whatwillilearn"></a>

* [React](https://reactjs.org/) - Javascript Library for building User Interfaces
* Create-React-App - Toolkit for starting React Apps
* [Apollo](https://www.apollographql.com/docs/react/) - GraphQL Client library
* [TypeScript](https://www.typescriptlang.org/) - Typed Superset of Javascript
* [Semantic UI ](https://react.semantic-ui.com/)- React UI toolkit

### Tutorials Written By

* [Arif Hanif](https://github.com/arif-hanif)

{% hint style="info" %}
Would love additional contributors or your thoughts on improving the content, reach out to Arif Hanif - <arif.hanif3@gmail.com>
{% endhint %}
