Project_Bank / README.md
Kshitij2604's picture
Update README.md
538781c verified

A newer version of the Gradio SDK is available: 6.9.0

Upgrade
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

  1. Clone the repository
  2. Install Python dependencies:
    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:
    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:

    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.