- Concise Description
- Overview
- Key Features and Benefits
- Target Audience
- Getting Started
- Architecture
- Development Workflow
- Available Scripts
- Project Structure
- Deployment
- Open Source License
- Links
Sure Walk is a mobile app and web project meant to allow for a seamless process of booking a Sure Walk to travel on-campus to off-campus. The app provides a user-friendly experience with additional relevant information about Sure Walks. The website provides an interface for UT Sure Walk Staff to effectively manage Sure Walk bookings and driver assignments.
Sure Walk's current process of receiving requests and assigning drivers to students is inefficient and has much that can be improved upon. Students also have had varying experiences with arrival and wait estimation times.
Sure Walk aims to improve the processes of booking a Sure Walk through easier management of Sure Walk Driver assignments and more elaborate and relevant information. Through an improved software system, students will be able to have more information about the rides they book and Sure Walk managers will be able to effectively manage all bookings and drivers.
- Stories and media on Longhorn traditions, events, and history
- Information on academic resources, student orgs, and support services
- Guided onboarding paths for first-year and transfer students
- Built with accessibility, responsiveness, and scalability in mind
- Students who live off-campus and travel within the hours of 8pm - 2am
- UT Sure Walk Staff
- Installations:
- pnpm
- Git
- Testing Prerequisites
git clone [email protected]:Longhorn-Developers/Sure-Walk.git
cd Sure-Walk
pnpm install
# Mobile (Expo)
pnpm dev:mobile
# Web admin dashboard (Next.js)
pnpm dev:web
- Expo
- React Native for front-end
- TypeScript
- Next.js
- Tailwind CSS for styling
- Vercel for deployment and hosting
-
User App (React Native with Expo)
- Provides UT students a mobile interface to request safe walks, track their walk in real-time, and communicate with their assigned Sure Walk driver.
-
Driver App / Mode
- Allows Sure Walk drivers to receive auto-assigned walk requests, navigate to pickup/drop-off locations, and chat with students.
-
Dispatcher Dashboard (Web)
- Enables coordinators to oversee all walk requests, manually assign drivers if needed, and monitor real-time walk progress.
-
Authentication System
- Integrates with UT EID + Duo for secure user verification and driver permissions.
-
Real-Time Backend
- Handles user-driver-dispatcher communication and updates for active walk sessions.
-
GPS and Location Services
- Tracks user and driver locations for real-time updates and routing.
-
Database
- Stores user profiles, walk history, driver logs, and route data.
-
Safety-first UX
- Prioritize clear visuals, status updates, and easy communication to reassure users throughout their walk.
-
Minimal friction
- Fast and simple request flow with default pickup locations, auto-driver assignment, and persistent session state.
-
Privacy and data security
- No unnecessary location tracking or data retention. Authentication is scoped and session-based.
-
Real-time communication
- Users, drivers, and dispatchers receive updates and can communicate instantly through in-app chat.
-
Reliability and resilience
- App maintains state across reloads and can recover gracefully from connection drops.
We follow the Conventional Commits specification for commit messages. This ensures a consistent commit history and enables automated versioning and changelog generation.
<type>/<short-description>
Examples:
- feature/{feature-name}
- fix/{bug-description}
- docs/{documentation-change}
Follow this structure for commit messages
<type>(<scope>): <subject>
Where:
- feat: New features
- fix: Bug fixes
- docs: Documentation changes
- style: Code formatting only
- refactor: Code changes without behavior change
- test: Adding or updating tests
- chore: Build process or tooling updates
- web: changes in the web (Next.js) app
- mobile: changes in the mobile (Expo) app
- shared: changes to the common ui module
- Fork or branch from main
- Create a PR with a clear description
- Ensure checks pass (build, lint, test)
- Request review before merging
- Unit tests for UI components
- Integration tests for feature flows
We welcome all to contribute! Please carefully read our Contributing Guide and Code of Conduct before getting started. All contributors must adhere to our Code of Conduct
pnpm expo start
# Start expo app, needs ios simulator or android simulator unless using web versionpnpm expo start -c
# Starts expo app, clearing cache, run if loading slowlypnpm lint
# Lint codebasepnpm format
# Format code using Prettier
/
├── package.json
├── pnpm-workspace.yaml
├── apps/
│ ├── mobile/ # Expo React Native app
│ └── web/ # Next.js web dashboard
├── packages/
│ ├── ui/ # Shared UI components
│ └── api/ # API client code
├── libs/
│ ├── utils/ # Common utilities
│ └── types/ # Shared TS types
└── .gitignore
- pnpm-workspace.yaml - Defines the workspace structure
- apps/mobile/ - Contains the Expo-based React Native application for users and drivers
- apps/web/ - Contains the Next.js admin dashboard for Sure Walk staff
- packages/ui/ - Shared UI components that can be used in both mobile and web apps
- packages/api/ - API client utilities for interacting with backend services
- libs/utils/ - Common utility functions shared across the applications
- libs/types/ - TypeScript types and interfaces used throughout the project
- Hosted on Vercel
- Push changes to GitHub
- Vercel builds automatically from
main
branch - Preview Deployments available on every PR