Skip to content

creativoma/networkpro

Repository files navigation

NetworkPro

A modern professional networking platform built with Next.js 14, TypeScript, and Supabase. Connect with professionals worldwide, discover events, and explore career opportunities.

NetworkPro TypeScript Supabase Tailwind CSS

🌟 Features

  • 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)

πŸš€ Tech Stack

πŸ“‹ Prerequisites

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)

πŸ› οΈ Installation

  1. Clone the repository
git clone https://github.com/yourusername/networkpro.git
cd networkpro
  1. Install dependencies
npm install
# or
yarn install
# or
pnpm install
  1. Set up Supabase

    • Create a new project in Supabase
    • Go to Project Settings > API
    • Copy your project URL and anon/public key
  2. 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
  1. 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 Editor

    c. (Optional) Add seed data:

    # Copy and paste the contents of supabase/seed.sql into the SQL Editor
  2. 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
  3. Run the development server

npm run dev
# or
yarn dev
# or
pnpm dev
  1. Open your browser

Navigate to http://localhost:3000

πŸ“ Project Structure

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

πŸ—„οΈ Database Schema

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.

πŸ” Authentication

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.

🎨 Customization

Theme Colors

Modify theme colors in src/app/globals.css:

:root {
  --primary: ...;
  --secondary: ...;
  /* Add your custom colors */
}

Components

All UI components are built with shadcn/ui and can be customized in src/components/ui/.

πŸ“ Available Scripts

npm run dev          # Start development server
npm run build        # Build for production
npm run start        # Start production server
npm run lint         # Run ESLint

🚒 Deployment

Deploy to Vercel (Recommended)

  1. Push your code to GitHub
  2. Import your repository in Vercel
  3. Add your environment variables
  4. Deploy!

Deploy with Vercel

Other Platforms

NetworkPro can be deployed to any platform that supports Next.js:

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Support

If you have any questions or need help, please:

πŸ—ΊοΈ Roadmap

  • 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

About

🚧 Work in progress inspired by the work done by https://x.com/levelsio

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •