Spaces:
Sleeping
Sleeping
A newer version of the Gradio SDK is available: 6.9.0
metadata
title: Project Management System
emoji: π
colorFrom: blue
colorTo: indigo
sdk: gradio
sdk_version: 5.22.0
app_file: app.py
pinned: false
Project Management System
A web-based project management system for managing student projects across different domains.
Features
- User Authentication (Student/Faculty)
- Project Management
- Domain-based Project Organization
- Student Project Assignment
- Admin Panel
- Responsive Design
Local Development
- Clone the repository
- Install Python dependencies:
pip install -r requirements.txt - Set up your environment variables in a
.envfile:DB_HOST=localhost DB_USER=root DB_PASSWORD=your_password DB_NAME=dms - Run the application:
python app.py
Database Setup
- Create a MySQL database named 'dms'
- Import the database schema from
dms.sql - Run
create_domain_descriptions.phpto set up domain descriptions
Directory Structure
βββ app.py # Gradio application
βββ requirements.txt # Python dependencies
βββ index.php # Homepage
βββ domains.php # Domain listing
βββ project_*.php # Project management files
βββ admin.php # Admin panel
βββ css/ # Stylesheets
βββ js/ # JavaScript files
βββ includes/ # PHP includes
βββ ajax/ # AJAX handlers
Security Considerations
- All user inputs are sanitized
- Passwords are hashed using secure methods
- Session management is implemented
- Access control is enforced based on user roles
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Domain Management System
A web-based platform to explore, search, and view projects across various domains, based on the DMS database.
Features
- Browse Domains: View all available domains in the system and their associated projects.
- Project Search: Search for projects by name, description, domain, or type (Hardware/Software).
- Project Details: View detailed information about each project, including descriptions, contact information, and associated resources.
- Student Information: If the student table exists, search and view student information related to projects.
- Dynamic Data Fetching: The system automatically fetches data from parent tables, avoiding manual duplication of data.
- Domain Descriptions: Domain descriptions are automatically generated from the database or fallback to defaults.
Setup Instructions
Prerequisites
- Web server with PHP support (e.g., Apache, Nginx)
- MySQL/MariaDB database server
- PHP 7.0 or higher
Database Setup
Create a new database named
dmsin your MySQL server:CREATE DATABASE dms;Import the SQL file (
dms (2).sql) into your database:- Using phpMyAdmin: Go to the Import tab, select the SQL file, and click "Go"
- Using MySQL command line:
mysql -u username -p dms < "dms (2).sql"
(Optional) Create domain descriptions table:
- Access the
create_domain_descriptions.phpscript in your browser to create and populate the domain_descriptions table - This step is optional but recommended for better organization of domain metadata
- Access the
Web Application Setup
- Copy all files to your web server's document root (or a subdirectory).
- Update the database connection details in
includes/db_connect.phpif needed. - Make sure your web server has permissions to read/write to the files.
- Access the website through your web browser.
Database Structure
The database consists of multiple tables:
domain_1throughdomain_12: Tables containing projects from different domainsstudents_info: Table containing student information (if available)domain_descriptions: Optional table for storing domain descriptions
Each domain table has a similar structure with fields like:
Domain_IDProject_IDProject_Name/Project _NameEmailH/S(Hardware/Software)DescriptionLinks
Dynamic Data Handling
The system uses several utility functions to automatically fetch and process data:
- Domain Descriptions: Automatically fetched from the domain_descriptions table if it exists, otherwise falls back to default values
- Project Names: The system handles different column naming conventions across tables
- Cross-Domain Search: Searches can be performed across all domain tables simultaneously
- Student-Project Association: Student data is linked dynamically to projects for comprehensive viewing
Usage
- Home Page: View basic statistics and recent projects from all domains
- Domains Page: Browse all domains and access their projects
- Projects Page: Search for projects across all domains with advanced filtering
- Students Page: Search for students by name, division, or domain (if the table exists)
Troubleshooting
- If you encounter database connection errors, verify that the credentials in
includes/db_connect.phpare correct. - Make sure that the
dmsdatabase has been properly imported with all required tables. - Check your PHP error logs if you're experiencing issues with the website.
Credits
Created as a Database Management System project.