Skip to content

ManiINFINITE/ProjectManagementSystem_Avalonia

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

88 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“‹ Project Management System

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.

.NET Avalonia EF Core PostgreSQL Build License MIT


✨ Features

πŸš€ Start-Up

  • Simple startup page with app's name on it
  • smoothly animated (FadeIn and out)

↔️ Page Transitions

  • Smooth page slide transitions between pages
  • Using warmup at startup to prevent laggy animations

πŸ™‹ Welcome Page

  • 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

πŸ” Authentication

  • 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

  • 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

πŸ‘€ Per-User Account Management

  • Profile picture upload, display, and deletion (stored as BLOB in 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

🎨 Appearance & Theming

  • 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

πŸ”” Notification System

  • 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

βš™οΈ Settings Page

  • Theme switcher with radio buttons
  • Accent color picker (circular gradient swatches)
  • Profile picture management
  • Notification toggle (enable/disable)
  • Auto-dismiss duration selector

πŸ› οΈ Project Creation

  • 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

πŸ“Έ Screenshots

startup welcome-page
Sign In With Slate Violet Theme LIGHT Sign Up With Slate Violet Theme LIGHT
Settings Page with Slate Violet Theme LIGHT Settings Page with Slate Violet Theme DARK
Sign In With Deep Red Theme DARK Settings With Deep Red Theme DARK
Settings With Deep Red Theme LIGHT Settings With Lime Forest Theme LIGHT
Project creation with google blue LIGHT Project creation with google blue DARK
project creation full with orange DARK Project creation with pink light

πŸ—οΈ Project Structure

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

πŸ› οΈ Tech Stack

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

πŸš€ Getting Started

Prerequisites

1. Clone the Repository

git lfs install
git clone https://github.com/ManiINFINITE/ProjectManagementSystem_Avalonia.git
cd ProjectManagementSystem_Avalonia

2. Set Up PostgreSQL

  1. Install PostgreSQL and make sure the service is running
  2. Open pgAdmin or psql and create the database:
CREATE DATABASE "ProjectManagementSystem";
  1. Open Data/AppDbContext.cs and update the connection string with your credentials:
"Host=localhost;Database=ProjectManagementSystem;Username=YOUR_USERNAME;Password=YOUR_PASSWORD"

3. Apply Migrations

dotnet tool install --global dotnet-ef
dotnet ef database update

This creates all tables automatically.

4. Restore & Run

dotnet restore
dotnet run

⚠️ This project is still in active development. A standalone installer will be available upon release.


πŸ—ΊοΈ Roadmap

  • Project editing and deletion
  • Project dashboard and tracking
  • In-app messaging between users
  • Role-based permissions (Admin, Member, Viewer)

πŸ“„ License

This project is open source and available under the MIT License.


πŸ‘¨β€πŸ’» Author

ManiINFINITE β€” Designed and developed independently as a portfolio project.

GitHub

Releases

No releases published

Packages

 
 
 

Contributors

Languages