ICT-Governance-Framework-Application

ICT Governance & IT Management Framework

See: Repository Table of Contents

A comprehensive ICT Governance and IT Management Framework with advanced user management, role-based access control, and security features. This interactive dashboard provides a user-friendly interface for exploring governance, compliance, and management processes.

Project Purpose

The framework and dashboard aim to:

Current Status

🚀 Getting Started

Prerequisites

1. Install Dependencies

cd ict-governance-framework
npm install

2. Setup Environment

cp .env.example .env
# Edit .env with your database and JWT secrets

Important Environment Variables:

# Database Configuration
DATABASE_URL=postgresql://username:password@localhost:5432/ict_governance_framework

# JWT Configuration (Generate strong secrets for production)
JWT_ACCESS_SECRET=your-super-secret-access-key-change-this-in-production
JWT_REFRESH_SECRET=your-super-secret-refresh-key-change-this-in-production

# API Configuration
PORT=4000
NODE_ENV=development

# Frontend Configuration
NEXT_PUBLIC_API_URL=http://localhost:4000/api

3. Setup Database

# Create your PostgreSQL database
createdb ict_governance_framework

# Run the SQL schema file against your PostgreSQL database
psql -d ict_governance_framework -f db-schema.sql

4. Start Backend

node server.js

The backend API will be available at http://localhost:4000

5. Start Frontend

npm run dev

The frontend application will be available at http://localhost:3000

📋 Default Admin Account

After running the database schema, you can create a super admin account by registering through the UI or using the API directly. The first user should be assigned the super_admin role manually in the database.

Option 1: Register through UI

  1. Navigate to http://localhost:3000/auth?mode=register
  2. Fill out the registration form
  3. After registration, manually update the user’s role in the database:
-- Find your user ID
SELECT user_id, username, email FROM users WHERE email = 'your-email@example.com';

-- Assign super_admin role
INSERT INTO user_roles (user_id, role_id, assigned_by, assignment_reason)
VALUES ('YOUR_USER_ID', 'ROLE_SUPER_ADMIN', 'YOUR_USER_ID', 'Initial super admin setup');

Option 2: Create directly via API

curl -X POST http://localhost:4000/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "username": "admin",
    "email": "admin@example.com",
    "password": "AdminPass123!",
    "firstName": "System",
    "lastName": "Administrator",
    "department": "IT",
    "jobTitle": "System Administrator"
  }'

Then assign the super_admin role using the SQL command above.

🔐 Key Features

Secure Authentication

Role-Based Access Control (RBAC)

User Management

Activity Logging & Audit Trail

Session Management

Password Security

Rate Limiting & Security

Responsive UI

📚 API Documentation

Authentication Endpoints

User Management Endpoints

Role Management Endpoints

Governance & Compliance Endpoints

🔧 Security & Configuration

Environment Security

Database Security

Application Security

📈 Monitoring & Maintenance

Health Checks

Logging

Next Steps / Roadmap

To continue enhancing the framework and dashboard:

  1. ✅ User Management & Security (COMPLETED)
    • ✅ Authentication, authorization, and audit logging implemented
    • ✅ Role-based access control with granular permissions
    • ✅ Session management and security features
  2. Content Integration:
    • Parse and render Markdown documentation within the dashboard
    • Organize content by framework domains, processes, and compliance requirements
    • Add search, filtering, and cross-referencing capabilities
  3. Enhanced UI/UX:
    • Design navigation and dashboards that reflect the structure of the framework
    • Implement advanced user management interfaces
    • Add real-time notifications and alerts
  4. Compliance & Reporting:
    • Integrate compliance checklists, reporting tools, and benchmarking features
    • Automated compliance monitoring and alerting
    • Export capabilities for audit reports
  5. Automation & Workflows:
    • Enable workflow automation for governance processes (e.g., registration, offboarding, audits)
    • Integration with external systems and APIs
    • Automated policy enforcement
  6. Advanced Features:
    • Multi-tenant support for organizations
    • Advanced analytics and dashboards
    • Mobile application development

Contributing

Contributions are welcome! Please see the main repository documentation for guidelines and priorities. Focus areas include:


🚦 Development

Running in Development Mode

# Backend with auto-reload (if nodemon is installed)
npm run dev:server

# Frontend with hot reload
npm run dev

# Both simultaneously (if concurrently is installed)
npm run dev:all

Testing

# Run all tests (when test suite is implemented)
npm test

# Run with coverage
npm run test:coverage

# Run specific test suite
npm run test:auth
npm run test:users
npm run test:roles

Database Migrations

# Run pending migrations (when migration system is implemented)
npm run migrate

# Rollback last migration
npm run migrate:rollback

# Reset database (development only)
npm run db:reset

Note: This framework and dashboard are under active development with production-ready user management. For authoritative framework content, refer to the Markdown files in the repository root or the Table of Contents.

🤝 Contributing

Contributions are welcome! Please see the main repository documentation for guidelines and priorities. Focus areas include:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass
  6. Submit a pull request

🆘 Support

For support and questions:

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Learn More

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.


The user management system is now fully integrated into the ICT Governance Framework and ready for production use with proper security measures and scalable architecture.