A modern, full-stack social media application built with Next.js, featuring real-time interactions, media sharing, and user discovery.
- User Authentication - Secure login/registration with NextAuth.js
- Social Interactions - Follow/unfollow users, like posts and comments
- Content Creation - Create posts with text and multiple images
- Media Sharing - Upload and display images with carousel support
- Infinite Scroll - Seamless content browsing with automatic loading
- Responsive Design - Mobile-first approach with desktop optimization
- Dark/Light Theme - Theme toggle functionality
- User Discovery - Find and connect with other users
- Real-time Updates - Dynamic content updates without page refresh
- Frontend: Next.js 13+ (App Router), React 18, TypeScript
- Styling: Tailwind CSS, shadcn/ui components
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js
- Form Handling: React Hook Form with Zod validation
- Icons: Lucide React
- UI Components: Radix UI primitives
-
Clone the repository
git clone <repository-url> cd mingle
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local
Configure the following variables:
DATABASE_URL- PostgreSQL connection stringNEXTAUTH_SECRET- NextAuth.js secretNEXTAUTH_URL- Application URL
-
Set up the database
npx prisma generate npx prisma db push
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
mingle/
├── app/ # Next.js App Router pages
│ ├── (root)/ # Main application routes
│ ├── api/ # API routes
│ └── globals.css # Global styles
├── components/ # React components
│ ├── auth/ # Authentication components
│ ├── cards/ # Post and user cards
│ ├── forms/ # Form components
│ ├── nav/ # Navigation components
│ ├── sections/ # Page sections
│ ├── skeleton/ # Loading skeletons
│ └── ui/ # Reusable UI components
├── actions/ # Server actions
├── prisma/ # Database schema and migrations
├── utils/ # Utility functions
└── public/ # Static assets
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
- Registration and login with email/password
- Profile customization (bio, location, avatar)
- Onboarding flow for new users
- Public profile pages
- Text-based posts with rich content
- Multiple image uploads (up to 4 per post)
- Image carousel with navigation
- "Show more" functionality for long posts
- Follow/unfollow system
- Like posts and comments
- Comment on posts
- User search and discovery
- Infinite scroll feed
- Responsive design for all devices
- Dark/light theme toggle
- Loading states and skeleton screens
- Bottom navigation for mobile
This project is licensed under the MIT License.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Mingle - Connect, Share, Discover