Skip to content

Commit 5a06669

Browse files
committed
Docs: add intro
1 parent eb08fb1 commit 5a06669

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

README.md

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,26 @@
11
# room-finder
22

3-
## Installation
3+
## The Problem
44

5-
### With `npm` or `yarn`
5+
The Walnut Hills Programming Club created this package while developing [Walnut.Direct](https://www.walnut.direct/), a web app to give students, parents, and visitors directions between rooms in Walnut Hills High School. For every possible pair of rooms in the school, we wanted to provide a set of clear, specific directions, and we didn't want to use GPS or sensors, since this would pose problems with both cost and location accuracy.
66

7-
You can use `npm` or `yarn` to install `room-finder` for use on either the frontend or on the backend with Node.
7+
Since we have too many rooms in our school to write every set of directions by hand, we needed a way to model our school so that we could generate directions from any room to any other room. Our solution was to model a building as a list of hallways, as well as a set of connections between hallways. After converting the hallways and connections into a graph data structure, we could apply Dijkstra's algorithm to find a path between any two nodes in the building.
8+
9+
Using our JavaScript/TypeScript library, room-finder, you can apply our method to any other building. After you specify the hallways and connections, room-finder will automatically generate the graph, use Dijkstra's algorithm, and output a set of readable directions from any room to any other room. Our goal is to make room-finder a simple way for anyone with some JavaScript experience to intuitively create a model for a building without having to measure distances or install sensors to generate directions.
10+
11+
We have tried to make our package very flexible. We support rooms with multiple names (aliases). You can modify edge lengths in the graph if room-finder's default route is too long. By extending our default classes, you can create hallways and rooms that output custom directions.
12+
13+
If you have problems, feedback, or suggestions, please tell us by [creating an issue in GitHub](https://github.com/walnutprogramming/room-finder/issues). Pull requests are welcome.
14+
15+
The full documentation is at [room-finder.walnut.direct](https://room-finder.walnut.direct/).
16+
17+
## Installation and Getting Started
18+
19+
You can use our library on a server or on any device that can run Node, but if you're creating a web app like [ours](https://github.com/WalnutProgramming/Directions), generating the model and directions on the frontend is unlikely to be a problem for performance.
20+
21+
### With NPM or Yarn
22+
23+
You can use NPM or Yarn to install `room-finder` for use on either the frontend or on the backend with Node.
824

925
```bash
1026
yarn add room-finder

0 commit comments

Comments
 (0)