Welcome to the TalkToMe project! This repository showcases a professional, feature-rich social platform inspired by Twitter. It demonstrates the application of SOLID principles in C# and object-oriented design, with a comprehensive focus on both user interaction through a web application and administrative control via a Windows Forms application.
- Project Overview
- Features
- Architecture and Design
- Screenshots and Diagrams
- Getting Started
- Usage
- Contributing
- License
- Project Plan: File
TalkToMe is a dynamic social platform designed to facilitate community interaction and engagement. Users can share their thoughts, insights, and experiences through text, images, and videos. The platform is categorized to streamline content discovery and foster targeted discussions.
- Tweets: Post messages with a 256-character limit, enriched with multimedia content.
- Categories: Organized content into various categories such as News, Technology, Lifestyle, Entertainment, and Education.
- Comments and Likes: Engage with posts through comments and likes.
- Administrative Control: A Windows Forms application for content moderation and user management.
- Ideation Document: File
- Account Management: Register, login, and manage user profiles.
- Post Creation: Create posts with text, images, or videos.
- Categorized Content: Browse and post in specific categories.
- Interaction: Like and comment on posts.
- Search: Find posts and profiles using keywords.
- Flag Content: Report offensive content for review.
- Dashboard: Overview of platform activity including user registrations and flagged content.
- User Management: Manage user accounts, including suspensions and bans.
- Content Moderation: Review, flag, and remove inappropriate posts and comments.
- Category Management: Add, edit, or remove content categories.
- URS & Test Plan & Test Report: File
The application follows a three-layer architecture:
- Presentation Layer: ASP.NET for the web application, Windows Forms for the admin application.
- Business Logic Layer: Implements the core functionality and business rules.
- Data Layer: Microsoft SQL Server for data management.
- SOLID Principles: Ensuring a robust, scalable, and maintainable codebase.
- Object-Oriented Design: Facilitating modularity and reusability.
- Visual Studio 2019 or later
- .NET Framework 4.7.2 or later
- SQL Server
- Clone the repository:
git clone https://git.fhict.nl/I530788/talktome.git
- Open the solution in Visual Studio.
- Restore NuGet packages.
- Update the database connection string in
appsettings.json:"ConnectionStrings": { "DefaultConnection": "Server=mssqlstud.fhict.local;Database=dbi530788_talktome;User Id=dbi530788_talktome;Password=talktome;encrypt=false" }
- Run the migrations to create the database schema:
Update-Database
Clients:
Admins:
Password for all: 123456
- Web Application: TalkToMe Website
- Windows Forms Application: Run the project in Visual Studio to access admin functionalities.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/your-feature-name). - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
This README is designed to impress with comprehensive documentation, demonstrating a thorough understanding of software development principles, and showcasing the full scope of the TalkToMe project. For more details, visit the project repository on GitLab.