A cross-platform desktop application built with Avalonia UI and .NET 10, featuring multi-user authentication, per-user settings, a custom notification system, and a fully themed UI.
- Simple startup page with app's name on it
- smoothly animated (FadeIn and out)
- Smooth page slide transitions between pages
- Using warmup at startup to prevent laggy animations
- A minimal, animated, modern welcome experience
- Supports up to 6 remembered accounts for quick access
- Personalized account cards with profile pictures or generated initials
- Each remembered account displays its own accent color identity
- One-click account selection for faster sign-in
- "Use Another Account" option for signing in with non-remembered accounts
- Secure authentication flow requiring password verification after account selection
- User registration with input validation (email format, password strength)
- Password visibility toggle feature
- Secure login with BCrypt password hashing
- Smooth Animated sign-in / sign-up transition
- Session management via a singleton
SessionService
- User dashboard with 5 pages (Home, Messages, Tasks, Members and Settings)
- Collapsible Navigation Bar
- Projects List
- Totally customizable with 34 combinations of 17 accent colors and Dark/Light Theme
- Profile picture upload, display, and deletion (stored as
BLOBin PostgreSQL per user) - Profile initials fallback when no picture is set
- Per-user settings persisted in individual JSON files (
settings.user.{id}.json) - Last logged-in user's settings automatically restored on app startup
- 3 theme modes: System, Light, Dark
- 17 accent color presets with gradient previews (Slate Violet, Google Blue, Deep Purple, Emerald, and more)
- Each accent color preset comes with its own unique signin Picture
- All colors applied dynamically via Avalonia resource dictionaries
- Accent colors are looked up by name from a central
AccentColorsBase - Accent colors are also saved to PostgreSQL database
- JetBrains-style toast notifications sliding in from the bottom right
- 4 notification types: Normal, Success, Warning, Error β each with a distinct color accent
- Queue system β notifications are stacked and processed one by one
- Up to 3 notifications visible at once with a stacked card depth effect (scale + offset)
- Per-notification 10s auto-dismiss timer (configurable: 3s, 5s, 10s, 20s, Never)
- Dismiss top (minus icon) or dismiss all (cross icon) controls
- Smooth slide-in / slide-out animations at ~60fps
- Theme switcher with radio buttons
- Accent color picker (circular gradient swatches)
- Profile picture management
- Notification toggle (enable/disable)
- Auto-dismiss duration selector
- Creating project with name, description, deadline
- Assigning users to project and giving them roles
- Defining tasks for the project and assigning a user to it
- Each task with title, description, assignee, priority, deadline
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
ProjectManagementSystem/
βββ Assets/
β βββ Icons/ # icons used for main window
β βββ Images/ # 17 accent color background images (Git LFS)
β βββ Fonts/ # Fonts for both texts (Nunito) and Icons (Phosphor)
βββ Converters/ # Custom converters
βββ Data/
β βββ AppDbContext.cs # EF Core PostgreSQL context
βββ Enums/ # NotificationType, AuthenticationMode
βββ Helpers/
β βββ UserValidator.cs # Email & password validation
βββ Models/ # User, Notification, AppSettings, AccentColorOption, etc.
βββ Repositories/ # One Repository per table (Data level access)
βββ Services/ # AppSettingsService, NotificationService, SessionService, SharedAnimationService, NavigationService and etc.
βββ Styles/ # Avalonia AXAML stylesheets per view
βββ ViewModels/ # MVVM ViewModels (CommunityToolkit.Mvvm)
βββ Views/ # Avalonia UserControls and Windows
βββ .github/workflows/ # CI build via GitHub Actions
| Technology | Purpose |
|---|---|
| Avalonia UI 12 | Cross-platform desktop UI framework |
| .NET 10 | Runtime & language (C# 13) |
| EF Core 10 + SQLite | Database ORM |
| CommunityToolkit.Mvvm | MVVM source generators |
| BCrypt.Net-Next | Password hashing |
| Git LFS | Large image asset storage |
| GitHub Actions | CI β build on every push |
- .NET 10 SDK
- PostgreSQL 16+
- Any IDE: Rider, Visual Studio 2022, or VS Code
- Git LFS β required for image assets
git lfs install
git clone https://github.com/ManiINFINITE/ProjectManagementSystem_Avalonia.git
cd ProjectManagementSystem_Avalonia- Install PostgreSQL and make sure the service is running
- Open pgAdmin or psql and create the database:
CREATE DATABASE "ProjectManagementSystem";- Open
Data/AppDbContext.csand update the connection string with your credentials:
"Host=localhost;Database=ProjectManagementSystem;Username=YOUR_USERNAME;Password=YOUR_PASSWORD"dotnet tool install --global dotnet-ef
dotnet ef database updateThis creates all tables automatically.
dotnet restore
dotnet run
β οΈ This project is still in active development. A standalone installer will be available upon release.
- Project editing and deletion
- Project dashboard and tracking
- In-app messaging between users
- Role-based permissions (Admin, Member, Viewer)
This project is open source and available under the MIT License.
ManiINFINITE β Designed and developed independently as a portfolio project.













