--- 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 1. Clone the repository 2. Install Python dependencies: ```bash pip install -r requirements.txt ``` 3. Set up your environment variables in a `.env` file: ``` DB_HOST=localhost DB_USER=root DB_PASSWORD=your_password DB_NAME=dms ``` 4. Run the application: ```bash python app.py ``` ## Database Setup 1. Create a MySQL database named 'dms' 2. Import the database schema from `dms.sql` 3. Run `create_domain_descriptions.php` to 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 1. Fork the repository 2. Create a feature branch 3. Commit your changes 4. Push to the branch 5. 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 1. Create a new database named `dms` in your MySQL server: ```sql CREATE DATABASE dms; ``` 2. 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" ``` 3. (Optional) Create domain descriptions table: - Access the `create_domain_descriptions.php` script in your browser to create and populate the domain_descriptions table - This step is optional but recommended for better organization of domain metadata ### Web Application Setup 1. Copy all files to your web server's document root (or a subdirectory). 2. Update the database connection details in `includes/db_connect.php` if needed. 3. Make sure your web server has permissions to read/write to the files. 4. Access the website through your web browser. ## Database Structure The database consists of multiple tables: - `domain_1` through `domain_12`: Tables containing projects from different domains - `students_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_ID` - `Project_ID` - `Project_Name`/`Project _Name` - `Email` - `H/S` (Hardware/Software) - `Description` - `Links` ## 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 1. **Home Page**: View basic statistics and recent projects from all domains 2. **Domains Page**: Browse all domains and access their projects 3. **Projects Page**: Search for projects across all domains with advanced filtering 4. **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.php` are correct. - Make sure that the `dms` database 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.