A Next.js-powered social platform connecting students, professors, and investors in the entrepreneurial ecosystem.
- Live Site: https://entrehive.ca
- Backend Repository: EntreHive Backend
- Frontend Repository: EntreHive Frontend
- Overview
- Features
- Tech Stack
- Getting Started
- Project Structure
- Environment Variables
- Available Scripts
- Key Features
- API Integration
- Contributing
EntreHive is a comprehensive social networking platform designed to bridge the gap between students, professors, and investors in the entrepreneurial ecosystem. The frontend is built with Next.js 15 using the App Router, featuring a modern, responsive UI with dark mode support.
- Email/password authentication with JWT
- Email verification system
- Password reset functionality
- Role-based access (Student, Professor, Investor)
- Profile customization with profile pictures and bios
- Curated feed algorithm with engagement scoring
- Create, edit, and delete posts
- Rich text content with image uploads
- Hashtag support
- Real-time like and comment system
- Post sharing functionality
- Visibility controls (public/university-only)
- Create and showcase entrepreneurial projects
- Project types: Startup, Research, Social Impact, Tech Innovation
- Team management and invitations
- Project discovery and search
- Rich project profiles with banners and images
- Status tracking (Planning, Active, Completed, On Hold)
- Direct Messaging: 1-on-1 conversations
- Group Conversations: Team-based project messaging
- Project View Requests: Permission-based access for professors/investors
- Real-time message updates
- Unread message indicators
- Conversation search and filtering
- Real-time notification system
- Multiple notification types:
- Likes and comments
- New followers
- Project invitations
- Message notifications
- Project view requests
- Mark as read/unread
- Notification preferences
- Global search across users, posts, and projects
- Advanced filtering options
- Hashtag search
- User discovery with follow suggestions
- Project categorization and tagging
- Modern, responsive design
- Dark/Light mode toggle
- Smooth animations with Framer Motion
- Mobile-first approach
- Infinite scroll on feeds
- Toast notifications
- Loading states and skeletons
- Error handling and retry mechanisms
- Next.js 15.5.3 - React framework with App Router
- React 19.1.0 - UI library
- TypeScript 5 - Type safety
- Tailwind CSS 4.0 - Utility-first CSS framework
- Framer Motion - Animation library
- Heroicons - Icon library
- Lucide React - Additional icon set
- React Context API - Global state management
- Zod - Schema validation
- clsx - Conditional className utility
- Turbopack - Fast bundler (Next.js 15 default)
- ESLint - Code linting
- PostCSS - CSS processing
- Node.js 18.x or higher
- npm or yarn package manager
- Backend API running (see Backend Repository)
-
Clone the repository
git clone https://github.com/Aadit-Chadda/EntreHive_frontend.git cd EntreHive_frontend/entrehive -
Install dependencies
npm install # or yarn install -
Set up environment variables
Create a
.env.localfile in the root directory:NEXT_PUBLIC_API_URL=http://localhost:8000
-
Run the development server
npm run dev # or yarn dev -
Open your browser
Navigate to http://localhost:3000
# Build the application
npm run build
# Start the production server
npm startentrehive/
βββ src/
β βββ app/ # Next.js App Router pages
β β βββ auth/ # Authentication pages
β β β βββ login/
β β β βββ signup/
β β β βββ forgot-password/
β β βββ feed/ # Main social feed
β β βββ posts/ # Post detail pages
β β βββ projects/ # Project pages
β β β βββ [id]/ # Project detail
β β β βββ create/ # Create project
β β βββ inbox/ # Messaging system
β β β βββ direct/ # Direct messages
β β β βββ group/ # Group conversations
β β β βββ requests/ # Project view requests
β β βββ profile/ # User profile
β β β βββ [username]/ # Public profile view
β β βββ explore/ # Search and discovery
β β βββ notifications/ # Notifications page
β β βββ settings/ # User settings
β β βββ documentation/ # Platform documentation
β β βββ components/ # Shared components
β β β βββ PostCard.tsx
β β β βββ PostCardNew.tsx
β β β βββ ProjectCard.tsx
β β β βββ CuratedFeed.tsx
β β β βββ RightSidebar.tsx
β β β βββ ThemeProvider.tsx
β β β βββ ...
β β βββ layout.tsx # Root layout
β β βββ page.tsx # Home/landing page
β β βββ globals.css # Global styles
β βββ components/ # Reusable components
β β βββ ProtectedRoute.tsx
β β βββ ...
β βββ contexts/ # React Context providers
β β βββ AuthContext.tsx
β β βββ ToastContext.tsx
β βββ lib/ # Utility functions
β β βββ api.ts # API client
β βββ types/ # TypeScript type definitions
β β βββ index.ts
β βββ utils/ # Helper functions
βββ public/ # Static assets
β βββ Logoblacktransparent.png
β βββ LogoWhitetransparent.png
β βββ ...
βββ .env.local # Environment variables (create this)
βββ next.config.ts # Next.js configuration
βββ tailwind.config.ts # Tailwind CSS configuration
βββ tsconfig.json # TypeScript configuration
βββ package.json # Dependencies and scripts
Create a .env.local file in the root directory with the following variables:
# Backend API URL
NEXT_PUBLIC_API_URL=http://localhost:8000
# Development
npm run dev # Start development server with Turbopack
npm run build # Build for production
npm start # Start production server
npm run lint # Run ESLint
# Package Management
npm install # Install dependencies
npm update # Update dependencies- Follow TypeScript best practices
- Use Tailwind CSS for styling
- Maintain component modularity
- Add proper type definitions
- Write clear comments for complex logic
- Test all user flows before submitting
- Verify responsive design on multiple screen sizes
- Check dark/light mode compatibility
- Ensure API integration works correctly
Questions or Issues? Please open an issue in the GitHub repository.
Backend Repository: EntreHive Backend