feat: pivot to social media workflow app
Some checks failed
Backend CI/CD / build_and_deploy (push) Has been cancelled
Frontend CI/CD / build_and_deploy (push) Has been cancelled

This commit is contained in:
2026-04-24 12:58:35 -04:00
parent 0f4acc1b6d
commit df3e602015
349 changed files with 18685 additions and 16010 deletions

152
README.md
View File

@@ -1,110 +1,88 @@
# Hutopy
# Socialize
## Patterns / strategy used
- Clean Architecture ( with Infrastructure, Domain, Application and Web layers )
- Minimal API endpoints.
Socialize is a workflow application for social media content review, revision, approval, and publication readiness.
## Tools
- Install Docker : https://www.docker.com/get-started/
- Install sql server management ( or preferred tool ) : https://learn.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16#download-ssms
It is not a public social network. The current product direction is a workspace-based review tool for internal teams, providers, and client approvers.
## Database setup in docker for local dev
```
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=P@ssword123!" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2022-latest
```
## Repository Structure
Or with a mounted volume to persist data on the computer instead ( persist data even if the container is deleted )
```
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=P@ssword123!' -p 1433:1433 -v C:\dev\DockerVolumes\SqlServer-Utopy-1\data:/var/opt/mssql/data -v C:\dev\DockerVolumes\SqlServer-Utopy-1\log:/var/opt/mssql/log -v C:\dev\DockerVolumes\SqlServer-Utopy-1\secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2022-latest
```
- `backend/`: ASP.NET Core `net10.0` API with FastEndpoints, EF Core, PostgreSQL, and modular bounded contexts.
- `frontend/`: Vue 3 + Vite + Vuetify + Pinia SPA.
- `docs/`: product, planning, and archived project documentation.
## Postgres DB setup in docker for local dev
```
docker run -p 5432:5432 --name Hutopy -e POSTGRES_PASSWORD=P@ssword123! -e POSTGRES_USER=sa -d postgres
## Current Backend Modules
- `Identity`
- `Workspaces`
- `Clients`
- `Projects`
- `ContentItems`
- `Assets`
- `Comments`
- `Approvals`
- `Notifications`
```
## Local Development
## Entity Framework
### Backend
Create a new migration :
```
./Ef.ps1 migrations add NomDeLaMigration
```
Prerequisites:
Update database :
```
./Ef.ps1 database update
```
- .NET 10 SDK
- Docker
## Secret Manager tool
Go to Web project: cd src/Web
Add a user secret for local development :
```
dotnet user-secrets set "DB_PASSWORD" "12345"
```
list your stored secrets :
```
dotnet user-secrets list
```
Delete a secret :
```
dotnet user-secrets remove "DB_PASSWORD"
```
## Build
Run `dotnet build -tl` to build the solution.
## Run
To run the web application:
Start infrastructure:
```bash
cd .\src\Web\
dotnet watch run
cd backend
./scripts/start-infrastructure.sh
```
Navigate to https://localhost:5001. The application will automatically reload if you change any of the source files.
## Code Styles & Formatting
The template includes [EditorConfig](https://editorconfig.org/) support to help maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs. The **.editorconfig** file defines the coding styles applicable to this solution.
## Code Scaffolding
Scaffold new commands and queries.
Start in the `.\src\Application\` folder.
Create a new command:
```
dotnet new ca-usecase --name CreateTodoList --feature-name TodoLists --usecase-type command --return-type int
```
Create a new query:
```
dotnet new ca-usecase -n GetTodos -fn TodoLists -ut query -rt TodosVm
```
If you encounter the error *"No templates or subcommands found matching: 'ca-usecase'."*, install the template and try again:
Run the API:
```bash
dotnet new install Clean.Architecture.Solution.Template::8.0.4
cd backend
dotnet run --project Socialize.Api.csproj
```
## Test
Local backend URL:
The solution contains unit, integration, and functional tests.
- `http://localhost:5000`
- Swagger UI: `http://localhost:5000/api`
- Using Moq, Nunit, Respawn, FluentAssertions
### Frontend
Prerequisites:
- Node.js / npm
The frontend reads runtime values from:
- `frontend/.env.development`
- `frontend/.env.production`
- `frontend/src/config.js`
Run the frontend:
To run the tests:
```bash
dotnet test
```
cd frontend
npm install
npm run dev
```
Local frontend URL:
- `http://localhost:5173`
## Validation
- Backend: `cd backend && dotnet build Socialize.Api.csproj`
- Frontend: `cd frontend && npm run build`
## Docs
- [docs/README.md](/home/jbourdon/repos/social-media/docs/README.md)
- [docs/product/vision.md](/home/jbourdon/repos/social-media/docs/product/vision.md)
- [docs/product/glossary.md](/home/jbourdon/repos/social-media/docs/product/glossary.md)
- [docs/constraints.md](/home/jbourdon/repos/social-media/docs/constraints.md)
- [AGENTS.md](/home/jbourdon/repos/social-media/AGENTS.md)