Certainly! Here is a sample README file for your project, "Optimization-Based Conference Scheduling System":
The Optimization-Based Conference Scheduling System is designed to streamline the process of organizing conference schedules. Using optimization techniques, this system assigns attendees to timeslots in a way that maximizes the similarity of their conference abstracts. This ensures that participants with similar research interests are grouped together, enhancing the quality of interactions and discussions during the conference.
- User Registration and Login: Users can register and log in with their roles.
- Attendee Management: Add and manage attendees, including their conference titles and abstracts.
- Schedule Optimization: Automatically optimizes the conference schedule to maximize the similarity of attendees' abstracts within each timeslot.
- Similarity Score Calculation: Calculates similarity scores based on the content of abstracts.
- Database Integration: Stores user information, attendee details, similarity scores, and optimized schedules in a MySQL database.
- Web Interface: Provides a user-friendly web interface for interaction.
- Python: Core programming language.
- Flask: Web framework for building the web application.
- MySQL: Database for storing user and conference data.
- Gurobi: Optimization solver for scheduling.
- HTML/CSS: Frontend design for web pages.
-
Clone the Repository
git clone https://github.com/l8w4/ConferenceScheduling.git cd ConferenceScheduling/tree/main/frontAndBackendCodes -
Create a Virtual Environment
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install Dependencies
pip install -r requirements.txt
-
Setup MySQL Database
- Ensure MySQL is installed and running.
- Create a database named
conference_scheduling. - Update
db_configinapp.pywith your MySQL credentials.
-
Initialize the Database
python initialize_db.py
-
Run the Application
flask run
-
Access the Application
- Open your web browser and navigate to
http://127.0.0.1:5000.
- Open your web browser and navigate to
- Register: Create a new user account with a specific role (admin or attendee).
- Login: Access the system using your credentials.
- Admin Panel: Add and manage attendees, view and optimize the schedule.
- Attendee Panel: View your assigned timeslot.
frontAndBackendCodes/
│
├── templates/
│ ├── index.html
│ ├── login.html
│ ├── register.html
│ ├── admin.html
│ ├── attendee.html
│ ├── calenderview.html
│ └── ...
│
├── static/
│ ├── css/
│ └── js/
│
├── app.py
├── initialize_db.py
├── requirements.txt
└── README.md
Contributions are welcome! Please fork the repository and create a pull request with your changes. Ensure your code follows the project's coding standards and includes appropriate tests.