Project_Bank / README.md
Kshitij2604's picture
Update README.md
538781c verified
---
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.