Bloggie is a full-featured blog site built using ASP.NET Core MVC. It provides a seamless blogging experience with distinct user roles (Admin, Super Admin, and User) to manage and interact with content.
-
Super Admin:
- Can create Admin users.
- Can create, read, update, and assign posts to tags or categories.
- Can comment on and like posts.
-
Admin:
- Can create, read, update, and assign posts to tags or categories.
- Can comment on and like posts.
- Cannot create other Admins.
-
User:
- Can view blog posts.
- Can interact with posts by commenting, liking, or disliking.
- ASP.NET Core MVC
- Identity for authentication and role management
- Cloudinary for image uploading and storage
- 3-Tier Architecture
- Repository Pattern for clean data access layer
- AutoMapper for object-to-object mapping
- Entity Framework Core for database interaction
This project follows a 3-Tier Architecture to maintain a clear separation of concerns:
- Presentation Layer: Handles the user interface and frontend logic.
- Business Logic Layer: Contains the core application logic and services.
- Data Access Layer: Manages database operations via repositories.
- .NET SDK (version 8.0)
- SQL Server
- Cloudinary API Key
-
Clone the repository:
git clone https://github.com/iHebaMohammed/Bloggie.git
-
Navigate to the project directory:
cd Bloggie
-
Set up the database:
- Update the appsettings.json with your SQL Server connection string.
- Run migrations to set up the database:
dotnet ef database update
-
Configure Cloudinary:
- Update the appsettings.json with your Cloudinary credentials.
-
Run the project:
dotnet run
-
Access the application:
- Navigate to
https://localhost:5001
in your browser.
- Navigate to
-
Super Admin:
- Log in with Super Admin credentials.
- Navigate to the Admin dashboard to create or manage posts and Admin users.
-
Admin:
- Create or update blog posts, assign tags, and manage categories.
-
User:
- Explore posts, leave comments, and engage with the content through likes and dislikes.
Bloggie.MVC.Project.mp4
Contributions are welcome! Please follow the standard GitHub workflow:
- Fork the project.
- Create a new branch (
feature/your-feature
). - Commit your changes.
- Open a pull request.