TrekCampus is an intra-campus navigation system designed to simplify campus navigation for students, faculty, and visitors. By providing real-time directions, point-to-point routes, and easy access to campus locations, TrekCampus enhances user experience and convenience within a campus environment.
- Interactive Map: Provides a detailed, interactive map of the campus.
- Point-to-Point Navigation: Calculates the optimal path between locations.
- Real-Time Updates: Updates routes based on campus conditions, events, or restricted areas.
- Location Search: Quickly search for buildings, facilities, and other points of interest on campus.
- Faculty Management: Supports adding and removing faculty members in various campus rooms, with dynamic list updates in campus files.
- Admin Interface: Allows administrators to modify campus and building navigation options and manage faculty room assignments.
To set up TrekCampus on your local system, follow these steps:
- Python 3.x
- Required Python packages
-
Clone the repository:
git clone https://github.com/yourusername/TrekCampus.git
-
Navigate into the project directory:
cd TrekCampus
-
Install any required dependencies:
pip install -r requirements.txt
-
Run the main navigation script:
python main.py
-
Use the interface to search for locations or get directions between points on campus.
-
Use the
faculty.py
functionalities to add or remove faculty members, and update their location data inedges.py
. -
Access the admin functions in
admin.py
to configure campus and building navigation and manage faculty room lists.
- Campus Graph (edges.py): This file defines the main campus routes (
edges_main
) and building-specific edges forAB3
(edges_AB3
) across different floors. Additionally, it containsfaculty_room
lists to hold faculty names for each room on different floors. This layout data is critical to navigation and building management functionalities. - Faculty Management (faculty.py): Manages a doubly linked list of faculty members and updates their room assignments in
edges.py
dynamically. - Admin Functions (admin.py): The central administration interface allows the addition and removal of edges for campus navigation, initialization and updating of faculty lists, and building-specific navigation configurations for different floors.
TrekCampus/
│
├── main.py # Entry point for the application
├── graph.py # Contains graph-based data for campus locations and routes
├── user.py # Handles user-related functionalities
├── faculty.py # Manages faculty lists and updates room assignments in edges.py
├── admin.py # Provides admin tools for campus/building navigation and faculty management
├── edges.py # Defines main campus routes, building routes, and faculty room data
├── README.md # Project documentation
The faculty.py
file includes the dlist
class, which provides the following functionalities for faculty management:
- Adding Faculty: Use
add_faculty(name, position, floor_index, room_choice)
to add a faculty member to a specific position in the doubly linked list. The room assignment inedges.py
will be updated based on thefloor_index
androom_choice
. - Removing Faculty: Use
remove_faculty(name, floor_index, room_choice)
to remove a faculty member from the list and update the room data inedges.py
. - Updating Faculty List: The
update_faculty_list(floor_index, room_choice)
method automatically updates room occupancy inedges.py
to reflect the current state of the faculty list.
The admin.py
file includes the following main functionalities:
- Campus and Building Navigation: Allows the admin to add, remove, and view edges in the campus navigation graph, as well as manage building-specific navigation for each floor.
- Faculty Management: Enables the admin to initialize faculty lists for each floor’s rooms, add or remove faculty members from specific rooms, and update the faculty data in
edges.py
accordingly.
We welcome contributions! If you have suggestions or improvements, please open a pull request or an issue.