Future Roadmap
Relevant source files
The following files were used as context for generating this wiki page:The future roadmap for Campuspal Room Finder outlines a strategic direction for evolving the application from a powerful search tool into a comprehensive campus resource management system. The plan focuses on two key areas: implementing new user-centric features to expand functionality and addressing existing technical debt to improve code quality, maintainability, and testing robustness. These enhancements aim to make the application more intelligent, interactive, and reliable.
Sources: README.md:322-331, TODO.md
Planned Feature Enhancements
Based on discussions during development, a set of significant features has been proposed to extend the application's capabilities. These enhancements focus on improving user interaction, adding booking functionality, and leveraging modern technologies for a smarter user experience.
Sources: README.md:322-331
The following table summarizes the proposed features:
| Feature | Description |
|---|---|
| Natural Language Search | Integrate an LLM to allow users to make conversational queries, such as "Find me a room for an hour on Tuesday afternoon in the Apollo Building with a projector". |
| Predictive Availability | Use machine learning to predict future room availability based on historical usage patterns. |
| Room Booking System | Implement functionality for users to reserve available rooms directly through the application. |
| User Accounts & Favorites | Allow users to create accounts, save favorite rooms, and store frequent search criteria. |
| Admin Dashboard | A dedicated interface for administrators to manage rooms, schedules, and user permissions. |
| Integration with Campus Systems | Integrate with official university scheduling APIs for real-time data synchronization. |
Sources: README.md:324-331
Proposed "Natural Language Search" Flow
This diagram illustrates how a natural language query would be processed.
Sources: README.md:324
Proposed "Room Booking System" Flow
This diagram shows a potential sequence for a user booking a room.
Sources: README.md:326
Technical Debt and Code Quality
A set of technical debt items and code quality improvements have been identified and are planned to be addressed in future updates. These tasks are crucial for long-term maintainability and ensuring the stability of the application.
Sources: TODO.md
Linting Issues (Flake8)
Several linting errors have been flagged by flake8 and are scheduled to be fixed. These are currently ignored in the CI pipeline to prioritize deployment but will be resolved to adhere to code style standards.
Sources: TODO.md:3-6
The following table details the outstanding issues:
| Error Code | Description | File & Line Number(s) | Suggested Fix |
|---|---|---|---|
E501 | Line too long (>120 characters) | finder/views.py:172, 187, 192, 216 | Split long lines, such as string formatting or function calls. |
F401 | Unused import (django.test.TestCase) | finder/tests.py:1 | Remove the import or add tests that use it. |
E261 | At least two spaces before inline comment | roomfinder/settings.py:41 | Add required spaces before the comment. |
W291 | Trailing whitespace | roomfinder/settings.py:41 | Remove trailing spaces from the line. |
E303 | Too many blank lines | roomfinder/settings.py:84, 104 | Reduce blank lines to 1 or 2. |
W504 | Line break after binary operator | finder/views.py:54 | Move the operator to the end of the previous line. |
Sources: TODO.md:8-27
An example of an E501 error can be seen in the search_rooms view:
# finder/views.py:92
block['start_percentage'] = ((datetime.datetime.combine(datetime.date.min, block['start']) - datetime.datetime.combine(datetime.date.min, datetime.time(7,0))).total_seconds() / total_duration) * 100
Sources: finder/views.py:92, TODO.md:12
CI/CD Improvements
The current CI pipeline has a known issue where it falls back to using SQLite because the DATABASE_URL is not configured in the CI environment. A future task is to configure the CI workflow to use a PostgreSQL service to ensure tests are run in an environment that more closely mirrors production.
Sources: TODO.md:30-32
This diagram shows the improved CI workflow.
Sources: TODO.md:31-32
Contribution Guidelines
Contributors looking to help implement these future enhancements or fix technical debt should follow the established guidelines. This involves forking the repository, creating a feature branch, and submitting a pull request for review. All new features should include corresponding tests.
Sources: CONTRIBUTING.md:6-28