Es2al is a dynamic Q&A platform where users can ask and answer questions in a structured, interactive environment. It uses a thread-based design where each new question automatically creates its own thread, keeping all related subquestions and answers organized in a clear hierarchy. It also includes advanced filtering, an infinite scroll browsing experience, a tag management system with admin control, and user engagement features.
- Backend: C#, ASP.NET MVC Framework, SignalR, Entity Framework Core
- Frontend: HTML, CSS, Bootstrap, JavaScript
- Database: SQL Server
- Testing: xUnit, Moq, FluentAssertions
- User Management
- User registration and authentication
- Role-based authorization (Admin, User)
- User Engagement
- Follow/unfollow users for a personalized feed
- Real-time Notifications for user activities
- Inbox system for managing Q&A
- Like or dislike answers
- Tag System
- Assign multiple tags to each question for better categorization
- Admin can create, edit, and delete tags
- Users can select preferred tags when editing their profile
- Q&A Threading
- Each question belongs to a dedicated thread containing all its subquestions and answers
- Subquestions can be nested in a tree hierarchy for better discussion flow
- Browsing Experience
- Filter questions by tags, date or search keyword
- Infinite scroll for seamless content loading
You can quickly run the Es2al application using Docker.
- Docker installed
- Docker Compose installed
- Clone the repository
git clone https://github.com/ammar-gamal/Es2al.git - Navigate to the project directory
cd Es2al - Build and start the containers
docker-compose up --build - Access the application
Open your browser and go to:
http://localhost:5000 - Stopping the application
docker-compose down
Use the following credentials to log in as an admin:
- Email: [email protected]
- Password: Admin0