A modern project management web application built with Laravel
Features • Screenshots • Getting Started • Usage • Structure • Contributing • License
ProjectFlow is a full-stack project management dashboard designed to help teams track projects, manage risks, issues, and activities in one centralized platform. Built with Laravel and featuring a custom glassmorphism UI design, it provides real-time analytics and role-based access control for different team members.
This project was built to explore Laravel's MVC architecture, Eloquent relationships, middleware-based authorization, and responsive dashboard design patterns.
- Summary cards — Total, active, completed, and at-risk project counts
- Interactive charts — Status distribution (doughnut), risk severity (bar), PM workload (bar), and progress overview (horizontal bar) powered by Chart.js
- Important items panel — Displays flagged risks and issues with their associated project names
- Upcoming activities — Shows pending tasks with due date countdowns
- Full CRUD operations for projects
- Track progress, budget, priority, status, and timeline
- R/I/A indicators — See risk, issue, and activity counts per project at a glance
- Detail view with related risks, issues, and activities
- Separate modules for risks and issues
- Severity levels: Low, Medium, High, Critical
- Status workflow tracking (Open → Investigating → Resolved → Closed)
- Important flag — Mark critical items to appear on the dashboard
- Mitigation plans for risks, resolution notes for issues
- Task assignments with due dates and assignees
- Status tracking: Pending, In Progress, Completed
- Overdue detection with visual indicators
- Session-based authentication
- 4 user roles: Super Admin, Admin, Project Manager, Assistant PM
- Role-based access control — User management is restricted to Super Admin and Admin only
- User status management (Active/Inactive)
- Glassmorphism design — Frosted glass effects with backdrop-filter
- Dark theme — Easy on the eyes for extended use
- Animated login page with floating gradient orbs
- Responsive layout — Works on desktop, tablet, and mobile
- Color-coded badges for status, priority, severity, and roles
- Modal-based forms with smooth animations
- Toast notifications for user feedback
Make sure your system has the following installed:
- PHP >= 8.2
- Composer >= 2.x
- Node.js >= 18.x (optional, for Vite asset compilation)
- SQLite (usually bundled with PHP)
-
Clone the repository
git clone https://github.com/zrstars/Development-Project-Management-Web-Apps.git cd Development-Project-Management-Web-Apps -
Install PHP dependencies
composer install
-
Configure environment
cp .env.example .env php artisan key:generate
-
Create the database
touch database/database.sqlite
-
Run migrations and seed data
php artisan migrate --seed
-
Start the development server
php artisan serve
-
Open your browser and visit
http://localhost:8000
| Role | Password | |
|---|---|---|
| Super Admin | superadmin@projectflow.com |
admin123 |
| Admin | admin@projectflow.com |
admin123 |
| Project Manager | pm@projectflow.com |
pm123 |
| Assistant PM | apm@projectflow.com |
apm123 |
| Feature | Super Admin | Admin | Project Manager | Assistant PM |
|---|---|---|---|---|
| View Dashboard | ✅ | ✅ | ✅ | ✅ |
| Manage Projects | ✅ | ✅ | ✅ | ✅ |
| Manage Risks | ✅ | ✅ | ✅ | ✅ |
| Manage Issues | ✅ | ✅ | ✅ | ✅ |
| Manage Activities | ✅ | ✅ | ✅ | ✅ |
| Manage Users | ✅ | ✅ | ❌ | ❌ |
Creating a Project:
- Go to Projects → Click New Project
- Fill in project details (name, manager, dates, budget, priority)
- Save — the project will appear in the table with R/I/A counters
Flagging Important Risks/Issues:
- When creating or editing a risk/issue, check "Mark as Important"
- Important items automatically appear in the dashboard panels
Monitoring Progress:
- The Dashboard provides a bird's-eye view with charts
- The At Risk counter tracks projects with high/critical open risks or issues
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ │ ├── AuthController.php # Login/logout
│ │ │ ├── DashboardController.php # Dashboard + chart data API
│ │ │ ├── ProjectController.php # Project CRUD
│ │ │ ├── RiskController.php # Risk CRUD
│ │ │ ├── IssueController.php # Issue CRUD
│ │ │ ├── ActivityController.php # Activity CRUD
│ │ │ └── UserController.php # User CRUD (admin)
│ │ └── Middleware/
│ │ └── RoleMiddleware.php # Role-based access control
│ └── Models/
│ ├── User.php # User with role helpers
│ ├── Project.php # Project + relationships
│ ├── Risk.php # Risk (belongs to project)
│ ├── Issue.php # Issue (belongs to project)
│ └── Activity.php # Activity (belongs to project)
├── database/
│ ├── migrations/ # Schema definitions
│ └── seeders/
│ └── DatabaseSeeder.php # Sample data for demo
├── resources/views/
│ ├── auth/login.blade.php # Login page
│ ├── layouts/app.blade.php # Main layout + sidebar
│ ├── dashboard.blade.php # Dashboard with charts
│ ├── projects/{index,show}.blade.php # Project views
│ ├── risks/index.blade.php # Risk management
│ ├── issues/index.blade.php # Issue tracking
│ ├── activities/index.blade.php # Activity management
│ └── users/index.blade.php # User management
├── public/
│ ├── css/style.css # Glassmorphism theme
│ └── js/app.js # Modal helpers
├── routes/web.php # All routes
└── docs/
└── screenshots/ # Application screenshots
| Layer | Technology | Purpose |
|---|---|---|
| Backend | Laravel 12, PHP 8.4 | MVC framework, routing, Eloquent ORM |
| Database | SQLite | Lightweight, zero-config storage |
| Frontend | Blade Templates | Server-side rendering |
| Styling | Vanilla CSS | Custom glassmorphism design system |
| Charts | Chart.js 4.4 | Interactive dashboard visualizations |
| Icons | Font Awesome 6.5 | UI iconography |
| Typography | Inter (Google Fonts) | Modern, readable typeface |
users
├── id, name, email, password
├── role (Super Admin | Admin | Project Manager | Assistant PM)
└── status (Active | Inactive)
projects
├── id, name, description, manager
├── status, priority, progress
├── start_date, end_date, budget
├── → has many: risks, issues, activities
risks
├── id, project_id (FK), title, description
├── severity, status, mitigation
├── important (boolean), reported_date
issues
├── id, project_id (FK), title, description
├── severity, status, resolution
├── important (boolean), reported_date
activities
├── id, project_id (FK), title, description
├── assignee, due_date, status
Contributions are welcome! If you'd like to contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
Please make sure your code follows the existing coding style and includes appropriate comments.
This project is licensed under the MIT License. See the LICENSE file for details.
- Laravel — The PHP framework for web artisans
- Chart.js — Simple yet flexible JavaScript charting
- Font Awesome — Vector icons and social logos
- Google Fonts — Inter typeface
Made with ❤️ by zrstars







