- Concise Description
- Overview
- Key Features and Benefits
- Target Audience
- Getting Started
- Architecture
- Development Workflow
- Available Scripts
- Project Structure
- Deployment
- Open Source License
- Links
Longhorn Studies is a mobile app intended to help UT students find new study spots and form study groups for assignments, projects, or exams.
UT's campus is large with many buildings, so it can be daunting to explore new locations to study. It can also be challenging to find peers to collaborate with when studying for exams or other course content.
Longhorn Studies provides a centralized, student-friendly platform that helps UT students discover and share new study spots on campus. It also makes it easy to connect with classmates by forming or joining study groups based on courses, exams, or assignments.
- Share study spots with other students
- Rate other study spots shared by students
- Form study groups with classmates
- UT Students
- Node.js (LTS version)
- pnpm package manager
- Expo CLI (pnpm add -g expo-cli)
- Supabase account and project set up
git clone https://github.com/your-repo/longhorn-studies.git
cd longhorn-studies
pnpm install
pnpm dev
- Environment Variables: Create a .env file at the root and include:
SUPABASE_URL=<your-supabase-url>
SUPABASE_ANON_KEY=<your-supabase-anon-key>
GOOGLE_MAPS_API_KEY=<your-google-maps-api-key>
- Ensure Supabase authentication is enabled.
- Platform/Toolchain: Expo
- UI/Moible Framework: React Native
- Programming Language: TypeScript
- Styling: NativeWind
- Backend: Supabase
- User Authentication: Supabase
- Database: Supabase
- User profiles
- Study spots/rating system
- Forming/joining study groups
- User-Centric: Prioritize ease of use for students
- Scalability: Ensure the backend can handle increasing user activity
- Performance-Optimized: Minimize load times and API calls
- Security-First: Protect user data and authentication processes
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:
type
has one of the following:
- 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
- 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 dev
# Start dev serverpnpm build
# Build project for productionpnpm preview
# Preview production build locallypnpm lint
# Lint codebasepnpm format
# Format code using Prettier
- pnpm dev # Start the development server
- pnpm start # Run Expo in interactive mode
- pnpm build
- pnpm test
- pnpm lint # Lint the codebase
- pnpm format # Format the code using Prettier
/longhorn-studies
│── /src
│ ├── /components # Reusable UI components
│ ├── /screens # App screens
│ ├── /hooks # Custom hooks
│ ├── /services # API and database interactions
│── /assets # Images, icons, and static files
│── app.json # Expo configuration
│── package.json # Dependencies and scripts
│── .env.example # Example environment variables
│── README.md # Project documentation
- TBD
- TBD
- TBD
- TBD
- TBD
- TBD