Spaces:
Sleeping
Sleeping
| 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. |