An open API service indexing awesome lists of open source software.

https://github.com/bernietv/.net-activities-app

A full-stack app built with ASP.NET Core WebAPI and React, following CQRS for clean code, featuring real-time chat and secure authentication, designed to be scalable and easy to maintain. πŸš€πŸ”₯🚴🎳
https://github.com/bernietv/.net-activities-app

azure dotnet entity-framework-core material-ui react signalr typescript

Last synced: 3 months ago
JSON representation

A full-stack app built with ASP.NET Core WebAPI and React, following CQRS for clean code, featuring real-time chat and secure authentication, designed to be scalable and easy to maintain. πŸš€πŸ”₯🚴🎳

Awesome Lists containing this project

README

          

# πŸš€ Full-Stack Awesomeness: ASP.NET Core WebAPI & React 🎯

Hey there! πŸ‘‹ Welcome to this full-stack web app that’s built using **ASP.NET Core WebAPI** on the backend and **React** on the frontend. We’ve followed **Clean Architecture** and implemented **CQRS + Mediator pattern** to keep things scalable, maintainable, and just straight-up cool. Plus, we threw in **real-time chat** and **modern front-end magic** to make it a seamless experience. πŸͺ„βœ¨

---

## 🏠 Tech Stack - What’s Under the Hood?

### Backend πŸ–₯️

- **ASP.NET Core WebAPI** βš™οΈ (Super-fast and cross-platform API framework)
- **CQRS + Mediator Pattern** πŸ› οΈ (Keeping commands and queries separate for a clean codebase)
- **Entity Framework Core** πŸ›‚ (ORM that makes database stuff a breeze)
- **ASP.NET Core Identity** πŸ”’ (Handles authentication like a pro)
- **AutoMapper** πŸ”„ (Transforms objects like a wizard)
- **SignalR** πŸ“‘ (Real-time web communication for instant updates)
- **Azure Deployment** ☁️ (Because cloud is the future)

### Frontend 🌐

- **React** βš›οΈ (Because why not? It’s awesome!)
- **TypeScript** πŸ“ (Say goodbye to annoying JS bugs)
- **React Router** πŸ› οΈ (For that smooth single-page app experience)
- **React Hook Form & Zod** πŸ—‹lοΈβœ… (Handling forms like a boss)
- **Material UI** 🎨 (Gives your UI a sleek and stylish look)
- **React Query** πŸ”βš‘ (Fetch, cache, and sync data like a pro)
- **MobX** πŸ’‘ (Simple and scalable state management)

---

## 🌟 Why This Project is πŸ”₯

- πŸš€ **Full-Stack Vibes**: ASP.NET + React combo for max efficiency
- πŸ”‘ **Secure Login System**: Users can sign up, log in, and stay protected
- πŸ’¬ **Real-Time Chat**: SignalR-powered chat that works instantly
- 🎨 **Sleek UI**: Built with **Material UI**, so it looks modern and fresh
- πŸ—‹l️ **Smart Forms**: React Hook Form + Zod makes input handling a breeze
- πŸ” **Supercharged API Calls**: React Query makes data fetching smooth
- πŸ“Έ **Photo Uploads & Profiles**: Users can upload and manage profile pics
- πŸ“Š **Data Optimization**: Paging, sorting, and filtering to keep things snappy
- ☁️ **Azure Hosting**: Deploy once, scale forever
- 🏠 **Future-Proof Codebase**: Clean Architecture means easy maintenance

---

## ⚑ Get Started - Set It Up Like a Pro πŸ› οΈ

You can check out the **live demo** of this project [here](https://reactivities-course.azurewebsites.net/). πŸŽ‰

### πŸ”‘ Accessing the App

To log in, either **sign up with a valid email** or use **GitHub login** (email verification is required in the published version).

#### πŸ“Œ Prerequisites

Make sure you have the following installed:

1. **.NET SDK v9** πŸ’»
2. **Node.js (18+ or 20+)** πŸš€
3. **Git** πŸ› οΈ (to clone the repo)

### 1️⃣ Clone the Repo πŸ—‚οΈ

```sh
git clone https://github.com/BernieTv/.NET-Activities-App
cd .NET-Activities-App
```

### 2️⃣ Restore dependencies πŸ–₯️

```bash
# From the root folder
dotnet restore

# Move to client folder and install dependencies
cd client
npm install
```

### 3️⃣ Set Up Photo Uploads (Optional) 🌐

- Create a file `appsettings.json` inside `Reactivities/API`
- Copy-paste this config:
```json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"CloudinarySettings": {
"CloudName": "REPLACEME",
"ApiKey": "REPLACEME",
"ApiSecret": "REPLACEME"
},
"AllowedHosts": "*"
}
```
- Sign up for a free **Cloudinary** account at [cloudinary.com](https://cloudinary.com) πŸŒ₯️
- Replace **REPLACEME** with your actual Cloudinary API keys πŸ”‘

### 4️⃣ Run the App Locally 🎠

```bash
# Start the API
cd API
dotnet run

# Open another terminal and start the React frontend
cd client
npm run dev
```

### 5️⃣ Access the App Locally ✨

- Open **https://localhost:3000** in your browser 🌍
- Log in using these test credentials:
```plaintext
Email: bob@test.com, tom@test.com, or jane@test.com
Password: Pa$$w0rd
```

---

## 🀝 Wanna Contribute? Let’s Collab! πŸš€

Got ideas? Found a bug? Want to add a feature? PRs are always welcome! πŸŽ‰ Open an issue, start a discussion, or just dive in and make things better.

---

## πŸ“ License - No Strings Attached!

This project is licensed under the **MIT License** πŸ“ž. Go ahead, use it, modify it, make it yours.

---

πŸš€ Happy coding, rockstar! πŸ–₯️πŸ”₯