Navit is an indoor mapping solution made for University or any other big campus.
- Backend ( NodeJS ) -
/backend
npm install
npm start
( starts the server ) - Frontend ( ReactJS ) -
/frontend-react
npm install
npm run dev
or Navit
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License.
If you would like to use this project for commercial purposes, please contact the author for permission.
Contributions are welcome! If you'd like to contribute to this project, please fork the repository, create a pull request, and ensure your changes align with the non-commercial intent of the license.
This software is provided "as-is," without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. Use at your own risk.
- Started with a problem in mind and the problem unvealed and changes the significant app fundamental approches to solve the problem and new approches were used.
- Route Management - Add routes using GeoJSON and calculate the shortest path using Dijkstra's algorithm and appropriate data structures.
- Dynamic Floor Polylines - Create an array of floors to show the polylines floor-wise. Each array element will contain coordinates for that specific floor to create the polyline accordingly.
(Floor numbering: 0 for ground floor, 1 for first floor and 6 for underground). - Implement basic functionality for routing.
- Data Structture design and Implementation
- Complete UI Design and improvements.
- Complete Map were Designed in GeoJSON and later improvements were made.
- Complete Routes were Designed in GeoJSON and later improvements were made.
- Utilize the Leaflet library to draw routes on the map with polylines, dynamically using coordinates as an array of strings input.
- Fetch Requests - Move all fetch requests to
server.js
for privacy and security. - Basic API Design and Implementation.
- Automate direction finding and identify idle classrooms and labs by storing timetables in the database (Possible API integration with class-sync).
- Floor numbering changed for ease: 0 for underground floor, 1 for ground floor and so on. 🟢
- Dynamic Centering - setting dynamic center by using cookies to add coordinates to center. Use the last coordinate to determine the center.
- Database Integration - Introduce a database to store custom maps and routes.
-
Authentication and Security - Implement authentication for students to verify users(cancelled) -
Possibly restrict mapping functionalities to within the campus IP or network for safety concerns(cancelled)
- Classsync - Integration of Class-sync APIs with Navit.
- Code Migration - Migration of code into ReactJS completely
- React Native - Analyze the benefits and scope of code Migration in React Native.