Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shawnjeffersonwang/campus-guide
This project is a campus navigation system written in Go for a data structures course. It uses the Gin framework and Redis, focusing on graph data structures and Dijkstra's algorithm for shortest path finding.
https://github.com/shawnjeffersonwang/campus-guide
dijkstra-shortest-path gin golang graph-algorithms html redis
Last synced: 9 days ago
JSON representation
This project is a campus navigation system written in Go for a data structures course. It uses the Gin framework and Redis, focusing on graph data structures and Dijkstra's algorithm for shortest path finding.
- Host: GitHub
- URL: https://github.com/shawnjeffersonwang/campus-guide
- Owner: ShawnJeffersonWang
- License: apache-2.0
- Created: 2023-12-25T04:41:23.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-06-07T09:34:51.000Z (5 months ago)
- Last Synced: 2024-11-06T09:05:39.831Z (9 days ago)
- Topics: dijkstra-shortest-path, gin, golang, graph-algorithms, html, redis
- Language: Go
- Homepage:
- Size: 82 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Campus Navigation Project
This project is a campus navigation system implemented in Go, designed as a data structures course project. It uses the Gin framework and Redis, with a focus on graph usage and the implementation of Dijkstra's algorithm for shortest path finding.
## Table of Contents
- [Introduction](#introduction)
- [Features](#features)
- [Technology Stack](#technology-stack)
- [Setup](#setup)
- [Usage](#usage)
- [Contributing](#contributing)
- [License](#license)## Introduction
The Campus Navigation Project is designed to help students and visitors navigate a campus efficiently. The system utilizes graph data structures to represent the campus layout and implements Dijkstra's algorithm to find the shortest path between locations.
## Features
- **Graph Representation:** Models the campus using graph data structures.
- **Shortest Path Calculation:** Implements Dijkstra's algorithm to find the shortest path between two points.
- **Redis Integration:** Uses Redis for caching and fast data retrieval.
- **RESTful API:** Provides a RESTful API to interact with the navigation system.## Technology Stack
- **Backend:** Go, Gin framework
- **Database:** Redis
- **Algorithm:** Dijkstra's algorithm for shortest path## Setup
1. Clone the repository:
```sh
git clone https://github.com/ShawnJeffersonWang/CampusGuide.git
cd CampusGuide
```2. Ensure you have Go and Redis installed on your system.
3. Install the necessary Go dependencies:
```sh
go mod tidy
```4. Start Redis server if it is not already running:
```sh
redis-server
```5. Run the application:
```sh
go run main.go
```## Usage
Once the application is running, you can access the API endpoints to interact with the navigation system.
### Example Endpoints
- **Get Shortest Path:** `/api/shortest-path?start={start}&end={end}`
## Contributing
Contributions are welcome! Please fork this repository and submit pull requests with your changes.
1. Fork the repository.
2. Create a new branch (`git checkout -b feature-branch`).
3. Commit your changes (`git commit -am 'Add new feature'`).
4. Push to the branch (`git push origin feature-branch`).
5. Create a new Pull Request.## License
This project is licensed under the Apache 2.0 License. See the [LICENSE](LICENSE) file for details.