JO
JosefKuchar/pv247-project
Locagram
A social web application focused on sharing and exploring reviews of real-world locations. Users can create posts linked to specific places, describe their experiences, and interact with other users through comments and likes.
Features
πͺ Location-Based Reviews
- Create posts linked to specific Google Maps locations
- Add photos, ratings, and detailed descriptions
- Automatic location association with map coordinates
π₯ Social Interaction
- Follow other users and see their posts in your personalized feed
- Like and comment on location reviews
- Build a community around shared experiences
πΊοΈ Discovery & Exploration
- Browse reviews through multiple interfaces:
- Main feed with recent/popular posts
- Interactive map showing reviewed places
- Search functionality for locations and keywords
- Filter content by category, rating, or proximity
π’ Business Management
- Location owners can claim their places
- Verified badges for Location Management accounts
- Comprehensive location pages with aggregated reviews and ratings
π± User Profiles
- Personal profiles with post history
- Customizable profile information and photos
- Follower/following system
Tech Stack
- Frontend: Next.js 16 with App Router, TypeScript, React 19
- Styling: Tailwind CSS, shadcn/ui components
- Database: Drizzle ORM with Turso (SQLite-compatible)
- Authentication: better-auth
- State Management: TanStack Query for server state
- Forms: React Hook Form
Getting Started
Prerequisites
- Node.js 18+ and pnpm
- Local Turso database instance
Installation & Setup
- Clone the repository and install dependencies:
pnpm install- Set up environment variables:
cp .env.example .env
# Edit .env with your configuration- Start the local database:
pnpm db- Push schema and seed data:
pnpm db:push
pnpm db:seed- Start the development server:
pnpm dev