A modern professional networking platform built with Next.js 14, TypeScript, and Supabase. Connect with professionals worldwide, discover events, and explore career opportunities.
- Professional Profiles: Create and browse detailed professional profiles with skills, experience, and certifications
- Job Opportunities: Discover and apply for job openings from companies worldwide
- Networking Events: Find and register for professional events, conferences, and workshops
- Real-time Connections: Send and manage connection requests with other professionals
- Messaging System: Communicate directly with your connections (coming soon)
- Favorites: Save interesting profiles, jobs, and events for later
- Dark Mode: Built-in dark mode support with next-themes
- Responsive Design: Fully responsive UI that works on all devices
- Authentication: Secure authentication with Supabase Auth (Google & GitHub providers)
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Database: Supabase (PostgreSQL)
- Authentication: Supabase Auth
- Styling: Tailwind CSS
- UI Components: shadcn/ui (Radix UI)
- Icons: Lucide React
- Theme: next-themes
Before you begin, ensure you have the following installed:
- Node.js 18.x or higher
- npm, yarn, pnpm, or bun
- A Supabase account (Sign up here)
- Clone the repository
git clone https://github.com/yourusername/networkpro.git
cd networkpro- Install dependencies
npm install
# or
yarn install
# or
pnpm install-
Set up Supabase
- Create a new project in Supabase
- Go to Project Settings > API
- Copy your project URL and anon/public key
-
Configure environment variables
Create a .env.local file in the root directory:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key-
Set up the database
a. Open the Supabase SQL Editor
b. Run the schema file:
# Copy and paste the contents of supabase/schema.sql into the SQL Editorc. (Optional) Add seed data:
# Copy and paste the contents of supabase/seed.sql into the SQL Editor -
Configure Authentication Providers (Optional)
In your Supabase dashboard:
- Go to Authentication > Providers
- Enable Google and/or GitHub authentication
- Add the OAuth credentials from your Google/GitHub apps
-
Run the development server
npm run dev
# or
yarn dev
# or
pnpm dev- Open your browser
Navigate to http://localhost:3000
networkpro/
βββ src/
β βββ app/ # Next.js app router pages
β β βββ about/ # About page
β β βββ auth/ # Authentication page
β β βββ events/ # Events listing and detail pages
β β βββ jobs/ # Jobs listing and detail pages
β β βββ privacy/ # Privacy policy page
β β βββ professionals/ # Professionals listing and detail pages
β β βββ profile/ # User profile page
β β βββ terms/ # Terms of service page
β β βββ layout.tsx # Root layout with theme provider
β β βββ page.tsx # Homepage
β βββ components/ # React components
β β βββ ui/ # shadcn/ui components
β β βββ Auth.tsx # Authentication component
β β βββ EventCard.tsx # Event card component
β β βββ Footer.tsx # Footer component
β β βββ JobCard.tsx # Job card component
β β βββ NavBar.tsx # Navigation bar
β β βββ ProfessionalCard.tsx # Professional card component
β βββ hooks/ # Custom React hooks
β β βββ useAuth.ts # Authentication hook
β β βββ useEvents.ts # Events data hook
β β βββ useJobs.ts # Jobs data hook
β β βββ useProfessionals.ts # Professionals data hook
β βββ lib/ # Utility functions
β β βββ api.ts # API functions for data fetching
β β βββ supabase.ts # Supabase client configuration
β β βββ utils.ts # Utility functions
β βββ types/ # TypeScript type definitions
β βββ index.ts # All type definitions
βββ supabase/ # Supabase configuration
β βββ schema.sql # Database schema
β βββ seed.sql # Sample data
βββ public/ # Static assets
βββ .env.example # Example environment variables
βββ package.json # Dependencies and scripts
The application uses the following main tables:
- users: User profiles and information
- professionals: Professional profiles with skills and experience
- events: Networking events and conferences
- jobs: Job opportunities and listings
- connections: User connections and networking
- messages: Direct messages between users
- favorites: Saved items (professionals, jobs, events)
- event_registrations: Event attendance tracking
For detailed schema information, see supabase/schema.sql.
NetworkPro uses Supabase Authentication with support for:
- Email/Password authentication
- Google OAuth
- GitHub OAuth
Row Level Security (RLS) policies ensure users can only access and modify their own data.
Modify theme colors in src/app/globals.css:
:root {
--primary: ...;
--secondary: ...;
/* Add your custom colors */
}All UI components are built with shadcn/ui and can be customized in src/components/ui/.
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint- Push your code to GitHub
- Import your repository in Vercel
- Add your environment variables
- Deploy!
NetworkPro can be deployed to any platform that supports Next.js:
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your 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
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - The React Framework
- Supabase - Open source Firebase alternative
- shadcn/ui - Re-usable components
- Tailwind CSS - Utility-first CSS framework
- Lucide - Beautiful icons
If you have any questions or need help, please:
- Open an issue on GitHub
- Email us at support@networkpro.com
- Check out our documentation
- User authentication
- Professional profiles
- Job listings
- Event management
- Connection requests
- Favorites system
- Real-time messaging
- Advanced search filters
- Notifications system
- Video calls integration
- Mobile app (React Native)
Made with β€οΈ by the NetworkPro team