A web application for tracking personal challenges, progress, and achievements. Built with ASP.NET Core (.NET 8), Entity Framework Core, and SQL Server.
- User registration and authentication
- Create, edit, and delete personal challenges
- Track daily progress for each challenge
- Leaderboard and user statistics
- Profile picture upload and user settings
- Category management for challenges
- Responsive and modern UI (Bootstrap, Font Awesome)
- Multi-language support (English/Arabic)
- Secure password management and user claims
- .NET 8 SDK
- SQL Server
- Visual Studio 2022+
- Clone the repository:
git clone <your-repo-url> cd PersonalChallengePlatform
- Restore dependencies:
dotnet restore
- Configure the database:
- Edit
appsettings.jsonand set your SQL Server connection string.
- Edit
- Apply migrations and update the database:
dotnet ef database update
- Run the application:
The app will be available at http://localhost:5000 (or the port specified in
dotnet run --project PersonalChallengePlatform/PersonalChallengePlatform.csproj
Program.cs).
- Register a new user via the Register page.
- The first name and last name are required and will be shown in the top bar.
- Profile pictures can be uploaded from the Settings page. A default avatar is used if none is uploaded.
- User claims (such as FirstName) are automatically added on registration and login.
- Uses Entity Framework Core with code-first migrations.
- To add a new migration:
dotnet ef migrations add <MigrationName> dotnet ef database update
- Uploaded profile pictures are stored in
wwwroot/uploads/profiles. - Default avatar is served from
wwwroot/images/default-avatar.jpg(or.svg).
- The leaderboard ranks users by points and completed challenges.
- User avatars and names are displayed for a personalized experience.
- The platform supports both English and Arabic for a wider audience.
- If you see 404 errors for avatar images, ensure the default avatar file exists in
wwwroot/images. - If the user's first name does not appear, log out and log in again to refresh claims.
- For database issues, ensure your connection string is correct and SQL Server is running.
Contributions are welcome! Please open an issue or submit a pull request.
Made with ❤️ by Mahmoud Abdel Nasser