A modern web-based Student Information Management System built with ASP.NET Core and Tailwind CSS for Mombera University.
The Student Information Management System (SIMS) is a comprehensive web application designed to manage student records, academic programs, faculty information, and financial accounts. It provides an intuitive interface for administrators, staff, and students to access and manage university data.
-
User Authentication & Authorization
- Role-based access control (Admin, Staff, Student)
- Secure login and registration
- Password recovery options
-
Student Management
- Create, view, update, and delete student records
- Track student personal information
- Manage enrollment status
-
Academic Program Management
- Manage faculties, departments, and programs
- Course catalog and curriculum management
- Academic year configuration
-
Financial Management
- Student account tracking
- Balance management
- Financial record keeping
-
Reporting & Analytics
- Dashboard with key metrics
- Customizable reports
- Data visualization
-
Administration Panel
- User management (create, edit, delete users)
- Role assignment and permissions
- System-wide configuration
- Centralized management interface
-
Audit Trail
- Track all system changes
- User activity logging
- Security monitoring
-
Backend
- ASP.NET Core 9.0
- Entity Framework Core
- PostgreSQL Database
- Identity Framework for authentication
-
Frontend
- Tailwind CSS
- HTML5/CSS3
- JavaScript
- Font Awesome icons
- .NET 9.0 SDK or later
- PostgreSQL 13 or later
- Node.js and npm (for Tailwind CSS)
- Install PostgreSQL if not already installed
- Create a new database named
sims - Create a dedicated PostgreSQL user for the application:
CREATE USER simsuser WITH PASSWORD 'simspassword';
GRANT ALL PRIVILEGES ON DATABASE sims TO simsuser;
\c sims
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO simsuser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO simsuser;
GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO simsuser;
GRANT CREATE ON SCHEMA public TO simsuser;- Update the connection string in
appsettings.json:
"ConnectionStrings": {
"DefaultConnection": "Host=localhost;Database=sims;Username=simsuser;Password=simspassword;Trust Server Certificate=true;"
}For security reasons, it's recommended to use user secrets for storing sensitive information:
dotnet user-secrets init
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Host=localhost;Database=sims;Username=simsuser;Password=simspassword;Trust Server Certificate=true;"
dotnet user-secrets set "AdminUser:Email" "admin@system.com"
dotnet user-secrets set "AdminReset:SecurityCode" "your-secure-reset-code"If you encounter the error 28P01: password authentication failed for user "postgres", try the following:
- Verify your PostgreSQL credentials are correct
- Create a dedicated database user as shown above
- Check PostgreSQL's
pg_hba.conffile for authentication method settings - Ensure the database exists and the user has appropriate permissions
- Test the connection using a simple console application before running the full application
- Clone the repository:
git clone https://github.com/yourusername/mombera-sims.git
cd mombera-sims- Install the .NET dependencies:
dotnet restore- Install the frontend dependencies:
npm install- Build the Tailwind CSS:
npm run build:css- Apply database migrations:
dotnet ef database update- Run the application:
dotnet run- Access the application at
https://localhost:5001orhttp://localhost:5000
The system uses database authentication for user login. Users must be registered in the database before they can log in.
The database backup contains an admin user with the following credentials:
- Email: admin@system.com
To log in as this user, you'll need to:
- Restore the database backup from 'C:\www\dbSIMS_backup_28.09.2017_SIMS.BAK'
- Use the password associated with this account in the database
New users can register through the registration form. When a new user registers:
- Their information is stored in the database
- They are assigned the "Student" role by default
- They can immediately log in with their credentials
The system includes a comprehensive administration panel accessible to users with the "Administrator" role. To access the administration panel:
- Log in with an administrator account
- Click on the "Administration" link in the sidebar navigation
The administration panel provides the following features:
- Dashboard: Overview of system statistics (users, students, programs, etc.)
- User Management: Create, edit, and delete users; assign roles
- Student Management: Centralized student record management
- Program Management: Manage academic programs
- Department Management: Manage university departments
Administrators can create new users with specific roles (Administrator, Staff, Student) and manage all aspects of the system from this centralized interface.
- Controllers/ - Contains all the application controllers
- Models/ - Data models and view models
- Views/ - Razor views for the UI
- Data/ - Database context and configurations
- Services/ - Business logic and services
- wwwroot/ - Static files (CSS, JS, images)
- Scripts/ - Database scripts and utilities
- ViewModels/ - View-specific models
- docs/ - Documentation files
SIMS/
├── Program.cs # Application entry point and configuration
├── appsettings.json # Application settings
├── appsettings.Development.json # Development-specific settings
└── SIMS.Web.csproj # Project file
Controllers/
├── AccountController.cs # Authentication and user account management
├── AccountsController.cs # Student financial accounts management
├── AdministrationController.cs # Admin dashboard and user management
├── CoursesController.cs # Course management
├── DepartmentsController.cs # Department management
├── FacultiesController.cs # Faculty management
├── HomeController.cs # Main dashboard and home page
├── ProgrammesController.cs # Academic programs management
└── StudentsController.cs # Student records management
Models/
├── Account.cs # Student financial account
├── AcademicYear.cs # Academic year configuration
├── AuditTrail.cs # System audit logging
├── Course.cs # Academic course
├── Department.cs # University department
├── ErrorViewModel.cs # Error handling
├── Faculty.cs # University faculty
├── LoginViewModel.cs # Login form model
├── Programme.cs # Academic program
├── RegisterViewModel.cs # Registration form model
└── Student.cs # Student information
ViewModels/
├── AdministrationViewModels.cs # Admin dashboard and user management models
├── CreateUserViewModel.cs # User creation form model
├── DashboardViewModel.cs # Home dashboard data model
├── EditUserViewModel.cs # User editing form model
├── ResetAdminPasswordViewModel.cs # Admin password reset model
└── UserViewModel.cs # User display model
Views/
├── Account/ # Authentication views
│ ├── Login.cshtml # Login page
│ ├── Register.cshtml # Registration page
│ ├── CreateAdminUser.cshtml # Admin user creation
│ └── ResetAdminPassword.cshtml # Admin password reset
├── Accounts/ # Financial accounts views
├── Administration/ # Admin panel views
│ ├── Index.cshtml # Admin dashboard
│ ├── Users.cshtml # User management
│ ├── Students.cshtml # Student management
│ ├── Programs.cshtml # Program management
│ └── Departments.cshtml # Department management
├── Courses/ # Course management views
├── Departments/ # Department management views
├── Faculties/ # Faculty management views
├── Home/ # Main application views
│ └── Index.cshtml # Dashboard
├── Programmes/ # Program management views
├── Shared/ # Shared layout components
│ ├── _Layout.cshtml # Main application layout
│ ├── _LoginLayout.cshtml # Authentication pages layout
│ └── _ValidationScriptsPartial.cshtml # Form validation scripts
└── Students/ # Student management views
Data/
├── ApplicationDbContext.cs # Entity Framework database context
├── IdentityUserConfiguration.cs # User identity configuration
└── PostgreSqlDbContextOptionsExtensions.cs # PostgreSQL configuration
Services/
├── AuditService.cs # System audit logging service
└── DataMigrationService.cs # Database migration utilities
wwwroot/
├── css/ # Stylesheets
│ ├── tailwind.css # Compiled Tailwind CSS
│ └── site.css # Custom styles
├── js/ # JavaScript files
│ └── site.js # Custom scripts
├── lib/ # Third-party libraries
│ ├── jquery/ # jQuery
│ └── bootstrap/ # Bootstrap components
└── images/ # Image assets
└── sims-logo.png # Application logo
Scripts/
├── create_database.sql # Database creation script
├── create_tables.sql # Table creation script
├── seed_data.sql # Initial data seeding
├── initialize_database.sh # Database initialization script
└── create_db_instructions.md # Database setup instructions
docs/
└── security-setup.md # Security configuration guide
During development, you can watch for CSS changes:
npm run watch:cssTo create a new migration after model changes:
dotnet ef migrations add MigrationName
dotnet ef database updateThe application is branded for Mombera University. To customize:
- Update the logo in
wwwroot/images/ - Modify the color scheme in
wwwroot/css/site.cssandtailwind.config.js - Update university name references in views
The main theme colors are:
- Primary: Turquoise (
#20B2AA) - Footer: Charcoal (
#36454F) - Accent: Amber (
#F59E0B)
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature-name - Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- ASP.NET Core team
- Tailwind CSS team
- Font Awesome for icons
- All contributors to the project
