Deprecated: Function get_magic_quotes_gpc() is deprecated in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 99

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 619

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1169

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176

Warning: Cannot modify header information - headers already sent by (output started at /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php:99) in /hermes/walnacweb04/walnacweb04ab/b2791/pow.jasaeld/htdocs/De1337/nothing/index.php on line 1176
10BC0 GitHub - hoodini/ncm-bp
Nothing Special   »   [go: up one dir, main page]

Skip to content

hoodini/ncm-bp

Repository files navigation

NCM Business Portfolio

NCM Business Portfolio NCM Business Portfolio - Dashboard NCM Business Portfolio - Dashboard Bright

A modern business portfolio application built with Next.js 14, Clerk Authentication, TailwindCSS, and shadcn/ui components.

πŸš€ Features

  • Modern UI/UX: Beautiful, responsive design with glassmorphism effects
  • Authentication: Secure user authentication powered by Clerk
  • Dashboard Analytics: Interactive charts and visualization
  • Project Management: Create and manage project portfolios
  • Theme Support: Dark/Light mode toggle
  • Mobile-First Design: Fully responsive interface for all devices

🧰 Tech Stack

πŸ“¦ Installation

Prerequisites

  • Node.js 18.17 or later
  • npm or yarn
  • Git
  • MongoDB Atlas account
  • Clerk account

Recommended Development Tools

For the best development experience, we recommend using one of these AI-powered tools:

These tools will help you understand and modify the codebase more efficiently.

Step-by-Step Setup Instructions

  1. Clone the repository
git clone https://github.com/yourusername/ncm-business-portfolio.git
cd ncm-business-portfolio
  1. Install dependencies
npm install
# or
yarn install
  1. Set up Clerk Authentication

    a. Create a Clerk account if you don't have one

    b. Create a new application:

    • Go to the Clerk Dashboard and click "Add Application"
    • Enter a name for your application
    • Select "Next.js" as the framework

    c. Configure your application:

    • In the Clerk Dashboard, go to your application
    • Go to "API Keys" in the sidebar
    • You'll find your "Publishable Key" and "Secret Key"
    • Copy these keys for your environment variables

    d. Configure sign-in options (optional):

    • In the Clerk Dashboard, go to "Authentication" β†’ "Social Connections"
    • Enable the social login providers you want to support (e.g., Google, GitHub)
    • Follow the instructions to set up each provider

    e. Set up redirect URLs:

    • In "Authentication" β†’ "Redirects", set the following:
      • Sign-in: /sign-in
      • Sign-up: /sign-up
      • After sign-in: /dashboard
      • After sign-up: /dashboard
  2. Set up MongoDB Atlas

    a. Create a MongoDB Atlas account if you don't have one

    b. Create a new project and cluster (the free tier works perfectly)

    c. Set up database access:

    • Create a database user with password authentication
    • Remember to save these credentials securely

    d. Set up network access:

    • Add your current IP address to the IP Access List
    • For development, you can allow access from anywhere (0.0.0.0/0)

    e. Get your connection string:

    • Go to your cluster and click "Connect"
    • Select "Connect your application"
    • Copy the connection string (it will look like: mongodb+srv://username:<password>@cluster0.xxxxx.mongodb.net/?retryWrites=true&w=majority)
    • Replace <password> with your database user's password
  3. Set up environment variables

Create a .env.local file in the root directory with the following variables:

# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboard

# MongoDB Atlas
MONGODB_URI=your_mongodb_connection_string
MONGODB_DB_NAME=your_database_name
  1. Run the development server
npm run dev
# or
yarn dev
  1. Open your browser

Navigate to http://localhost:3000 to see the application.

πŸ“‹ Key Pages

  • Dashboard (/dashboard): Main overview with statistics and project summaries
  • Projects (/projects): Project listing and management
  • Analytics (/analytics): Detailed analytics with interactive charts
  • Settings (/settings): User profile and application settings

🌟 Custom Components

The application features several custom components:

  • Charts: Area, Bar, Line and Pie charts with responsive design
  • Header: Responsive navigation with mobile drawer
  • Theme Toggle: Light/Dark mode switcher
  • Cards: Beautiful glassmorphism-style cards for content display

πŸ“± Responsive Design

The application is built with a mobile-first approach and includes:

  • Responsive navigation (collapsible sidebar on mobile)
  • Fluid layouts that adapt to any screen size
  • Optimized content display for different devices

🧩 Project Structure

ncm-business-portfolio/
β”œβ”€β”€ public/              # Static assets
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/             # App router pages
β”‚   β”‚   β”œβ”€β”€ dashboard/   # Dashboard page
β”‚   β”‚   β”œβ”€β”€ projects/    # Projects page
β”‚   β”‚   β”œβ”€β”€ analytics/   # Analytics page
β”‚   β”‚   β”œβ”€β”€ settings/    # Settings page
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ components/      # Reusable components
β”‚   β”‚   β”œβ”€β”€ charts/      # Chart components
β”‚   β”‚   β”œβ”€β”€ ui/          # shadcn/ui components
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ lib/             # Utility functions and shared logic
β”‚   └── models/          # MongoDB schema models
β”œβ”€β”€ next.config.ts       # Next.js configuration
β”œβ”€β”€ tailwind.config.js   # TailwindCSS configuration
└── ...

πŸš€ Deployment

This application can be easily deployed on:

πŸ”’ Authentication Flow

The authentication is handled by Clerk and includes:

  • Sign up/Sign in pages
  • Protected routes
  • User profile management
  • Authentication middleware

Understanding Clerk Authentication

Once set up, Clerk provides:

  1. Pre-built components: <SignIn />, <SignUp />, <UserProfile />, etc.
  2. Auth hooks: useAuth(), useUser(), etc. for accessing user data
  3. Middleware: Protects routes based on authentication status
  4. Server-side helpers: For accessing user data in server components

Example of protecting a route:

// In your route component
import { auth } from "@clerk/nextjs";

export default function ProtectedPage() {
  const { userId } = auth();
  
  if (!userId) {
    // Handle unauthenticated state
    redirect("/sign-in");
  }
  
  // Render content for authenticated users
}

πŸ§ͺ Extending the Project

To add new features to the project:

  1. For new pages, create folders in the src/app directory
  2. For new components, add them to the src/components directory
  3. For database integrations, set up MongoDB models in the src/models directory

🌈 Customization

Customize the look and feel of the application:

  • Edit tailwind.config.js to change theme colors
  • Modify src/app/layout.tsx to update global layout
  • Update fonts and styles in the theme configuration

πŸ‘€ About the Developer

Created with πŸ’œ by Yuval Avidani, AI Builder & Speaker

"Fly High With YUV.AI"

πŸ“„ License

This project is open source and available under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
0