https://github.com/fkucukkara/community-group
Community Groups is a cross-platform project built with ASP.NET Core 9. Although it was developed years ago, it is still undergoing refactoring.
https://github.com/fkucukkara/community-group
csharp generic-repository netcore-webapi
Last synced: 4 months ago
JSON representation
Community Groups is a cross-platform project built with ASP.NET Core 9. Although it was developed years ago, it is still undergoing refactoring.
- Host: GitHub
- URL: https://github.com/fkucukkara/community-group
- Owner: fkucukkara
- License: mit
- Created: 2022-05-22T20:35:28.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-12-24T20:50:48.000Z (over 1 year ago)
- Last Synced: 2025-01-23T02:17:02.510Z (over 1 year ago)
- Topics: csharp, generic-repository, netcore-webapi
- Language: C#
- Homepage:
- Size: 16.6 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Community Groups
## Overview
Community Groups is a cross-platform project built with **ASP.NET Core 9**.
## Purpose and Use Cases
This project offers RESTful services to support the creation and management of communities and their members. Originally developed as part of an interview exercise, it has recently undergone modernization efforts and is still under active refactoring to improve its structure and align with current best practices.
Key features include:
### Person Management
- **Create** a person entry with the following details:
- First Name
- Last Name
- Email (unique)
- Occupation (optional)
- **Edit** a person entry
- **Delete** a person entry
- **Bulk Create**: Import a CSV file to create multiple person entries
- **Search, Order, and Paginate** person entries
### Community Group Management
- **Create** a community group with a name
- **Edit** the name of a community group
- **Delete** a community group
- **Assign** users to a community group
- **Remove** users from a community group
- **Retrieve** a community group with its members
### User Authentication and Authorization
- **User Registration and Login** with email and password
- All people and community groups are scoped to the logged-in user
## API Documentation
Explore the API endpoints via Swagger:
- **Swagger URL**: [https://localhost:44308/swagger/index.html](https://localhost:44308/swagger/index.html)
### Authentication
Authentication is required for accessing most endpoints. Use the following credentials for demo purposes:
- **Login Path**: `/api/v1/Login/login`
- **Username**: `crea`
- **Password**: `crea`
After logging in, include the generated JWT token in the **Authorize** section of Swagger to access the services.
## Security
- **JWT Authentication**: Ensures secure access to endpoints.
- Tokens must be included in requests after login.
## Architecture
The project adheres to modern software engineering practices, ensuring scalability and maintainability.
- **Framework**: Built on .NET Core 9
- **Authentication**: JWT-based authentication
- **Data Access**: Implements the Generic Repository Pattern
- **Error Handling**: Centralized exception handling using Middleware
- **Database**: Entity Framework Code-First approach
- Commands: Use `add-migration` and `update-database` to synchronize the database
## License
[](LICENSE)
This project is licensed under the MIT License, which allows you to freely use, modify, and distribute the code. See the [`LICENSE`](LICENSE) file for full details.