Welcome to EchoWrite, a modern blogging platform designed to provide a seamless and interactive experience for users to create, share, and manage content while fostering a vibrant community.
EchoWrite is a full-featured blog application built using ASP.NET MVC. It enables users to:
- Write, edit, delete, and manage their blog posts.
- Engage with other users through comments, likes, and follows.
- Explore content using powerful search and category filters.
- Maintain a secure and user-friendly experience with robust account management.
The admin area allows platform moderation, handling reported content, and managing categories.
- Post Management: Create, edit, delete, and report posts.
- Engagement: Like/dislike posts and comments, follow/unfollow users.
- Personal Profile: Update personal details, view followers/following, and manage posts.
- Search: Discover users via search functionality.
- Categorization: Filter posts by categories.
- Moderation: Handle reported users, posts and comments.
- Management: Control categories and tags for content organization.
- Security: Robust authentication using ASP.NET Identity.
- Ease of Use: Intuitive user interface and streamlined workflows.
- Modern Styling: Clean and professional layout.
- Backend: ASP.NET Core MVC, Entity Framework Core
- Frontend: Bootstrap, jQuery, HTML5, CSS3
- Database: SQL Server
- Authentication: ASP.NET Identity
- Version Control: Git, GitHub
Get started with EchoWrite by watching our introductory video:
Untitled.design.mp4
Untitled.design.mp4
Untitled.design.mp4
Make sure you have the following installed:
- Clone the Repository
git clone https://github.com/LaraSamara/EchoWrite.git cd EchoWrite
-
DAL(Data Access Layer)- Contains all domain models such as
ApplicationUser,Post,Comment,Like,Category, andReport. - Includes the database context (
DbContext) and all database-related operations using Entity Framework Core.
- Contains all domain models such as
-
BLL(Business Logic Layer)- Encapsulates all query and business logic operations.
- Implements the Repository Design Pattern to separate data access logic from the controllers.
- Handles interactions between the
DALand thePL.
-
PL(Presentation Layer)- Contains the
wwwrootfolder for static assets like CSS, JavaScript, and images. - Includes the Areas:
User: For user-specific features, such as profile management, creating posts, comments, likes, and following other users.Admin: For admin-specific features, including handling reports, managing categories.
- Hosts all main controllers, views, and Razor pages to create the user interface.
- Manages shared controllers, such as
AccountControllerfor identity-related actions andHomeControllerfor Home pages.
- Contains the
The project follows a N-tier Architecture:
- Presentation Layer (PL): Handles user interactions through areas, controllers, and views.
- Business Logic Layer (BLL): Processes and validates business logic, ensuring a clear separation between the UI and database operations.
- Data Access Layer (DAL): Manages all database-related tasks, including migrations and database context.
Contributions are welcome!
To contribute:
- Fork the repository.
- Create your feature branch:
git checkout -b feature/YourFeatureName. - Commit your changes:
git commit -m 'Add some feature'. - Push to the branch:
git push origin feature/YourFeatureName. - Open a pull request.
For significant changes, please discuss them first by opening an issue.
This project is licensed under the MIT License. See the LICENSE file for details.
Developed by Lara Samara.
For inquiries, contact me at larasamara2002@gmail.com.