Ethan Townsend's Social Site — A modern social media platform built with Blazor Server and .NET 8.
A comprehensive C#/Blazor dynamic web application that simulates a full-featured social media site, including user authentication, profile management, photo sharing, messaging, and administrative tools.
- Secure Authentication: Registration and login with ASP.NET Core Identity
- Strong Password Requirements: 10+ characters with uppercase, lowercase, digits, and special characters
- Role-based Authorization: User and Admin role management
- Customizable Profiles: Personal information including display name, bio, age, likes, and favorite food
- Profile Photos: Upload and display profile pictures
- Public Profile Views: View other users' profiles and information
- Photo Sharing: Upload and view photos with captions
- Messaging System: Leave messages on other users' profiles
- User Search: Find and connect with other users
- Activity Tracking: View messages received and sent
- Admin Dashboard: Manage users and roles (admin privileges required)
- User Management: Administrative oversight of user accounts
- Framework: .NET 8.0
- Web Framework: ASP.NET Core with Blazor Server
- Database: SQL Server with Entity Framework Core
- Authentication: ASP.NET Core Identity
- UI Components: Razor Components with interactive server rendering
- Styling: Custom CSS with modern responsive design
- Development Tools: Visual Studio 2022
Before running this application, make sure you have:
- .NET 8.0 SDK or later
- SQL Server (LocalDB is sufficient for development)
- Visual Studio 2022 (recommended) or any compatible IDE
-
Clone the repository
git clone https://github.com/snxethan/CSC260-FINAL.git cd CSC260-FINAL -
Navigate to the project directory
cd Social_Media -
Restore dependencies
dotnet restore
-
Update the database
dotnet ef database update
-
Run the application
dotnet run
-
Open your browser and navigate to
https://localhost:7021orhttp://localhost:5021
- Create an account using the "Create account" button on the home page
- Complete your profile by navigating to your profile page and editing your information
- Upload a profile photo to personalize your account
- Explore other users and start interacting!
Social_Media/
├── Components/
│ ├── Layout/ # Layout components (NavBar, MainLayout)
│ ├── Pages/ # Page components
│ │ ├── Admin/ # Admin-specific pages
│ │ ├── Index.razor # Home page
│ │ ├── Me.razor # User's own profile
│ │ ├── UserProfile.razor
│ │ ├── EditProfile.razor
│ │ ├── UserSearch.razor
│ │ └── About.razor
│ ├── MessageList.razor
│ ├── MessageForm.razor
│ └── PhotoCard.razor
├── Data/
│ ├── ApplicationDbContext.cs
│ └── Seed.cs # Database seeding
├── Models/
│ ├── ApplicationUser.cs
│ ├── Message.cs
│ └── Photo.cs
├── Migrations/ # Entity Framework migrations
├── wwwroot/ # Static files (CSS, JS, images)
├── Program.cs # Application entry point
└── appsettings.json # Configuration settings
- Secure user registration and login
- Password strength requirements
- User session management
- Role-based access control
- Editable user profiles with personal information
- Profile photo upload and display
- Public profile viewing
- User discovery and search
- Photo sharing with captions
- Profile messaging system
- User-to-user communication
- Activity feeds
- User role management
- Administrative dashboards
- User account oversight
This is a student project for CSC260 (Cohort 39). If you'd like to contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- This application uses Blazor Server for real-time interactivity
- Database migrations are automatically applied on startup in development
- Default admin user and roles are seeded on first run
- The application is configured for HTTPS by default
This social media platform was developed as part of CSC260 coursework to demonstrate proficiency with:
- Modern web development with .NET 8 and Blazor
- Database design and Entity Framework Core
- User authentication and security
- Component-based UI development
- Real-time web applications