This is the backend API for Qubix, a social network developed as part of a diploma project at IT Step Academy.
- Swagger API Documentation: Qubix API
- Backend Framework: ASP.NET Core 8.0
- Architecture: Clean Architecture, Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS)
- Database: PostgreSQL
- Authentication: JWT (JSON Web Tokens)
- API Documentation: Swagger
-
Authentication and Authorization:
- User registration and login.
- Admin login.
- Password recovery feature.
-
User Management:
- Create, update, and delete user profiles.
- Friend management (add/remove friends).
- Profile privacy settings.
-
Post and Story Management:
- Create, edit, and delete posts (text and images).
- Publish stories that expire after 24 hours.
- Add tags and location to posts.
-
Interaction with Posts:
- Like, comment, and react to posts.
- Different reactions (e.g., emojis).
-
Messaging:
- One-on-one chats.
-
Admin Features:
- Manage users (view, block, and delete accounts).
- Moderate content (remove inappropriate posts).
- .NET SDK version >= 8.0
- PostgreSQL
- Clone the repository:
git clone https://github.com/ohorodnichuk17/facebook-server.git
- Set up the database connection string in
appsettings.json
:"ConnectionStrings": { "DefaultConnection": "Host=localhost;Database=qubixdb;Username=postgres;Password=yourpassword" }
- Run database migrations:
dotnet ef database update
- Start the API server:
dotnet run
- Access the API documentation via Swagger.
The API can be deployed to Azure, AWS, or any cloud service supporting .NET Core.