Triller is a social media platform that mimics the functionality of Twitter, allowing users to share their thoughts, updates, and more through short posts called Trills. Users can engage with Trills by liking, commenting, and reposting them. Additionally, the platform supports user-to-user connections with a follow system. Finally, users can communicate with each other through a real-time messaging system
https://triller.azurewebsites.net/
- Authorization: Users need to sign in or register to be able to use the application.
- Trills: Users can compose and share short posts, known as Trills, with their followers. They can attach photos to their Trills.
- Engagement: Users can express their opinions by liking, commenting, and reposting Trills.
- Follow System: Users can follow each other to stay updated on the latest Trills from their connections.
- Blocking System: Users can block each other to prevent interactions and viewing of content.
- Reply to Trills: Users can reply to Trills to engage in conversations and discussions.
- Repost Trills: Users can repost Trills to share them with their own followers.
- Bookmark Trills: Users can bookmark Trills to save them for later viewing.
- Share Trills: Users can share Trills with others via external platforms or messaging.
- Thumbs Up/Down: Users can express their sentiment on replies with thumbs up or thumbs down reactions.
- Language Toggle: Users can toggle between English and Spanish languages for the website interface.
- Messaging System: Users can message each other privately.
- Notification System: Users receive notifications for activities such as likes, comments, follows, and messages.
- Profile Editing: Users can edit their profile information, including profile picture, bio, and other details.
- ASP.NET 8
- Entity Framework
- Microsoft SQL Server
- ASP.NET Identity
- JSON Web Tokens (JWT)
- Angular 17
- Angular Material
- Tailwind CSS
- Microsoft Azure (for deployment)
- Cloudinary (for photo uploading)
Triller is a monolith application that follows the layered architecture design pattern, incorporating the Repository and Unit of Work Patterns to organize and manage data access logic effectively.
- Repository Pattern: Data access logic is encapsulated in repositories, providing a clean separation between the data layer and the business logic. Each entity type typically has its own repository class responsible for CRUD operations.
- Unit of Work Pattern: The Unit of Work pattern coordinates multiple repositories and ensures that all changes to the database are made within a single transaction. This pattern helps maintain data integrity and consistency.
By adhering to these patterns, Triller achieves better maintainability, testability, and separation of concerns within its architecture.
To install and run the Triller server (ASP.NET) locally, follow these steps:
-
Clone this repository:
git clone https://github.com/mespino4/Triller
-
Navigate to the
api-aspnet
directory:cd api-aspnet
-
Install dependencies:
dotnet restore
To install and run the Triller client (Angular) locally, follow these steps:
-
In a second terminal navigate to the
client-angular
directory:cd client-angular
-
Install dependencies:
npm install
-
Run the Angular development server:
ng serve
- Access the frontend application in your browser at
http://localhost:4200
. - Explore the different features and functionalities of the application.
- Use the provided authentication mechanism to log in and access restricted resources.
-
Backend:
- Database connection settings: Update the connection string in
appsettings.json
. - Authentication settings: Configure authentication providers, JWT tokens, etc., in
Program.cs
.
- Database connection settings: Update the connection string in
-
Frontend:
- API base URL: Update the base URL of the backend API in
environment.ts
for development andenvironment.prod.ts
for production.
- API base URL: Update the base URL of the backend API in
This project is licensed under the MIT License.