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. ππ₯π΄π³
- Host: GitHub
- URL: https://github.com/bernietv/.net-activities-app
- Owner: BernieTv
- License: mit
- Created: 2025-02-16T19:35:02.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-17T10:14:23.000Z (over 1 year ago)
- Last Synced: 2025-02-17T11:25:44.827Z (over 1 year ago)
- Topics: azure, dotnet, entity-framework-core, material-ui, react, signalr, typescript
- Language: TypeScript
- Homepage: https://reactivities-course.azurewebsites.net/
- Size: 1.73 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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! π₯οΈπ₯