Local Networking Platform - A modern full-stack TypeScript application for local community building and networking.
LokalConnect connects people in their immediate area, enabling them to discover local events, trade on the marketplace, and build genuine connections.
This is a monorepo containing:
/app
- React TypeScript frontend with Vite/backend
- Directus headless CMS backend- Docker Compose - Unified development environment
- 🗺️ Interactive Map - Discover events and activities near you
- 📅 Event Calendar - Plan and manage local events
- 💬 Messaging System - Communicate directly with other users
- 🏪 Marketplace - Buy and sell items within your community
- 👥 Friends & Groups - Build your local network
- 📱 Responsive Design - Optimized for desktop and mobile
- 🎨 Modern UI - Elegant interface with Framer Motion animations
- Framework: React 18 + TypeScript + Vite
- Styling: Tailwind CSS + Radix UI
- Routing: React Router DOM
- Maps: Leaflet + React Leaflet
- Animations: Framer Motion
- Icons: Lucide React
- API Client: Directus SDK
- CMS: Directus (Headless CMS)
- Database: PostgreSQL
- API: Auto-generated REST + GraphQL
- Auth: JWT + Role-based permissions
- Schema Management: directus-sync
- Containerization: Docker + Docker Compose
- Development: Hot reload for both frontend and backend
- Database: PostgreSQL with automatic migrations
- Node.js (Version 18+)
- Docker & Docker Compose
- npm (Version 9+)
-
Clone the repository
git clone <repository-url> cd LocalConnect
-
Set up environment variables
cp .env.example .env # Edit .env with your preferred settings
-
Start the full development environment
npm run dev
This will start:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8055
- Directus Admin: http://localhost:8055/admin
- PostgreSQL: localhost:5432
-
Install all dependencies
npm run install:all
-
Start backend only
npm run dev:backend
-
Start frontend only (in another terminal)
npm run dev:app
# Full development environment (Docker Compose)
npm run dev
# Frontend development only
npm run dev:app
# Backend development only
npm run dev:backend
# Build frontend for production
npm run build
# Install all workspace dependencies
npm run install:all
# Clean Docker containers and images
npm run clean
LocalConnect/
├── app/ # Frontend React TypeScript app
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ │ ├── ui/ # Design system components
│ │ │ ├── Header.tsx # App header
│ │ │ ├── Layout.tsx # Main layout
│ │ │ └── Sidebar.tsx # Navigation
│ │ ├── pages/ # Main pages
│ │ │ ├── Dashboard.tsx # Home page
│ │ │ ├── Map.tsx # Map view
│ │ │ ├── Calendar.tsx # Event calendar
│ │ │ ├── Marketplace.tsx # Marketplace
│ │ │ └── ...
│ │ ├── services/ # API services (Directus SDK)
│ │ ├── types/ # TypeScript type definitions
│ │ ├── lib/ # Utility functions
│ │ └── main.tsx # App entry point
│ ├── public/ # Static assets
│ ├── package.json
│ ├── vite.config.ts
│ └── tsconfig.json
├── backend/ # Directus backend
│ ├── directus/ # Directus instance
│ ├── sync/ # directus-sync configurations
│ ├── seeds/ # Seed data
│ ├── Dockerfile
│ └── package.json
├── docker-compose.yml # Development environment
├── .env.example # Environment variables template
└── package.json # Workspace configuration
The project uses a consistent design system based on:
- Tailwind CSS for styling
- Radix UI for accessible UI components
- CSS Custom Properties for theming
- Framer Motion for animations
- Button, Card, Input, Label
- Avatar, Badge, Tabs, Toast
- Dialog, Dropdown Menu, Slider
The project includes a unique visual editor system:
- Live editing of JSX elements in the browser
- Babel-based AST manipulation
- Development-specific plugins
- Vite Config:
vite.config.js
- Plugins and build settings - Tailwind Config:
tailwind.config.js
- Design system - Path Aliases:
@/
points tosrc/
The build process automatically generates:
- LLM content from React Helmet data
- Route information for SEO
- Optimized assets for production
The application is primarily designed for German users:
- German UI text
- Local date/time formats
- Regional content adaptations
This project is licensed under the MIT License.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
For questions or issues, please create an issue in this repository.
Built with ❤️ for local communities