Star the Repo⭐
Welcome to Neural Nexus, a comprehensive AI model hub where you can upload, sell, and transfer ownership of your AI creations using various payment methods including cryptocurrency, UPI, PayPal, and net banking. We focus on building a vibrant community of creators and innovators shaping the future of AI, emphasizing innovation and collaboration.
We're inspired by the 'Radio on the Internet' concept for AI—powered by strategic partnerships and a commitment to open access. Our mission is to democratize AI by providing free models and data, inspired by the Transformers library from Hugging Face, while also offering premium content for advanced users.
- Upload AI Models: Share your models with the world
- Secure Payments: Process payments via Stripe, Razorpay (UPI), or Cryptocurrency (MetaMask)
- Modern Authentication: Sign in with Google, GitHub, email, or cryptocurrency wallets
- Ownership Transfer: Transfer model ownership with blockchain security
- Open Source Models: Access a comprehensive library of free models inspired by Transformers
- Premium Marketplace: Buy and sell premium models and datasets for advanced projects
- Modern UI: Responsive design with smooth animations and contemporary aesthetics
- Email Notifications: Receive important updates via email using SendGrid integration
- Next.js: React framework for high-performance applications
- Tailwind CSS: Utility-first CSS framework for modern styling
- Framer Motion: Animation library for enhanced user experience
- Supabase: Open-source Firebase alternative for authentication and database management
- Stripe & Razorpay: Payment processing solutions
- SendGrid: Email delivery service for transactional emails
- Edge Functions: Lightweight serverless functions for optimal performance
Setup Guide (click to expand)
-
Clone the Repository:
git clone https://github.com/Drago-03/Neural-Nexus.git cd Neural-Nexus
-
Install Dependencies:
npm install
-
Set Environment Variables: Create a
.env.local
file in the root directory using the.env.local.example
as a template:cp .env.local.example .env.local
Then edit the file to add your actual credentials.
MongoDB Setup (click to expand)
a. Create a MongoDB Atlas account at MongoDB Atlas (free tier available)
b. Create a new cluster and database
c. Get your connection string:
- Go to Database > Connect > Connect your application
- Select Node.js as your driver and copy the connection string
- Replace <password>
with your database user password
- Add the connection string to your .env.local
file as MONGODB_URI
- Set MONGODB_DB_NAME
to your database name (default: neural_nexus
)
d. For production deployments: - Ensure your MongoDB Atlas IP allow list includes your deployment server IPs - For Vercel, you need to add all Vercel deployment IPs or use 0.0.0.0/0 (allow all) - The app includes fallback in-memory storage if MongoDB connection fails
e. Troubleshooting MongoDB connections:
- If you encounter TLS/SSL errors, make sure you're using a clean connection string without extra parameters
- Use this format: mongodb+srv://username:password@cluster.mongodb.net/dbname?retryWrites=true&w=majority
- The app will automatically handle connection retries and fallbacks
Supabase Setup (click to expand)
a. Create a Supabase project at Supabase (free tier available)
b. Get your API credentials:
- Go to Project Settings > API
- Copy the URL, public anon key, and service role key
- Add them to your .env.local
file
c. Initialize the database: - After setting up your project and environment variables, run: ```bash # Start your Next.js dev server npm run dev
# In a new terminal, initialize the database (one-time setup)
curl "http://localhost:3000/api/supabase-setup?setup_key=YOUR_SETUP_KEY_FROM_ENV"
```
d. Enable authentication providers:
- Go to Authentication > Providers
- Enable Email, Google, GitHub, etc. as needed
- Configure OAuth credentials for third-party providers
- For GitHub OAuth:
- Go to your GitHub account > Settings > Developer settings > OAuth Apps > New OAuth App
- Set the callback URL to exactly: https://[YOUR-PROJECT-REF].supabase.co/auth/v1/callback
- Copy the Client ID and Client Secret to Supabase GitHub provider settings
- It's critical that the callback URL matches exactly what Supabase expects
- For Google OAuth:
- Set the callback URL to exactly: https://[YOUR-PROJECT-REF].supabase.co/auth/v1/callback
- Make sure to add the same domain to your authorized redirect URIs
e. Enable anonymous authentication: - Go to Authentication > Providers - Scroll down to "Anonymous Sign-in" and toggle it on - This allows users to try the platform without creating an account
f. Set up storage buckets:
- Go to Storage
- Create buckets for: models
, avatars
, thumbnails
- Set RLS policies for each bucket
SendGrid Setup (click to expand)
a. Create a SendGrid account at SendGrid (free tier available)
b. Get your API key:
- Go to Settings > API Keys > Create API Key
- Create a new API key with full access or restricted access to "Mail Send" only
- Copy the API key to your .env.local
file as SENDGRID_API_KEY
c. Verify your sender identity:
- Go to Settings > Sender Authentication
- Verify a Single Sender or set up Domain Authentication
- Add the verified email address to your .env.local
file as EMAIL_FROM
d. Test your email configuration:
bash node test-sendgrid.js your.email@example.com
e. For more details, see the Email Service Documentation
Firebase Setup (Legacy/Optional) (click to expand)
The app is transitioning from Firebase to Supabase, but can still use Firebase for some features.
a. Create a Firebase project at Firebase Console
b. Enable Authentication services: - Go to Authentication > Sign-in method - Enable Email/Password and Google sign-in methods
c. Create a Firestore database: - Go to Firestore Database > Create database - Start in production mode - Choose a location close to your users
d. Set up Storage: - Go to Storage > Get started - Set up security rules for production
e. Get your Firebase config:
- Go to Project settings > General
- Scroll down to "Your apps" and select your web app
- Copy the Firebase config values to your .env.local
file
Run Locally (click to expand)
npm run dev
Open http://localhost:3000
to view the application.
A modern, TypeScript-first toolkit for connecting with AI models on the Neural Nexus platform. Effortlessly deploy, manage, and share models, integrate with a marketplace, and handle authentication and payments—all with a single, powerful npm package.
Official NPM: neural-nexus
Installation (click to expand)
Stable:
npm install neural-nexus
Copy
Alpha (v1) Version:
npm install neural-nexus@v1
Copy
All API requests require authentication using an API key. You can generate and manage your API keys from your Neural Nexus dashboard.
Step-by-Step Onboarding (click to expand)
- Sign up or log in at Neural Nexus Dashboard
- Navigate to API Keys in your account settings
- Click Generate New Key and select the key type (test, development, production, etc.)
- Copy your key (it will only be shown once!)
- Store your key securely (use environment variables, never commit to code)
Authenticating Requests (click to expand)
Include your API key in the Authorization
header:
Authorization: Bearer YOUR_API_KEY
Copy
Example: JavaScript (fetch) (click to expand)
const response = await fetch('https://api.neuralnexus.biz/v1/models', {
headers: {
'Authorization': `Bearer ${process.env.NEURAL_NEXUS_API_KEY}`
}
});
const data = await response.json();
Copy
Example: Using the SDK (click to expand)
import { NeuralNexus } from 'neural-nexus';
const nexus = new NeuralNexus({
apiKey: process.env.NEURAL_NEXUS_API_KEY,
environment: 'production'
});
Copy
Example: Managing API Keys in JavaScript (click to expand)
async function createApiKey() {
const API_KEY = process.env.NEURAL_NEXUS_API_KEY;
const response = await fetch('https://api.neuralnexus.biz/v1/api-keys', {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'My Development Key',
type: 'development'
})
});
const data = await response.json();
console.log('New API key created:', data);
console.log('IMPORTANT: Save this key now as it won\'t be shown again!');
return data;
}
Copy
For more details, see the official npm package page.
Supabase Table: user_profiles (click to expand)
CREATE TABLE user_profiles (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
first_name TEXT,
last_name TEXT,
display_name TEXT,
email TEXT,
bio TEXT,
avatar_url TEXT,
website TEXT,
social_links JSONB,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
Supabase Table: models (click to expand)
CREATE TABLE models (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
name TEXT NOT NULL,
description TEXT,
price DECIMAL(10, 2) DEFAULT 0,
category TEXT,
tags TEXT[],
file_url TEXT,
file_path TEXT,
file_size BIGINT,
file_type TEXT,
thumbnail_url TEXT,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
downloads INTEGER DEFAULT 0,
rating DECIMAL(3, 2) DEFAULT 0,
is_public BOOLEAN DEFAULT true,
status TEXT DEFAULT 'active'
);
Setting Up Environment Variables on Vercel (click to expand)
- Go to your project settings in Vercel
- Navigate to Environment Variables
- Add all the variables from your
.env.local
file - Make sure to set
NEXT_PUBLIC_APP_ENV=production
- Redeploy your application to apply the changes
MongoDB Configuration for Production (click to expand)
- In your Vercel deployment, ensure MongoDB connection string is correctly set
- Add
MONGODB_URI
andMONGODB_DB_NAME
to your environment variables - If users report profile update errors, check the following:
- MongoDB connection string should be clean without unnecessary parameters
- The IP allowlist in MongoDB Atlas should include Vercel's deployment IPs
- The application includes fallback in-memory storage if the database connection fails
- User profiles will be stored temporarily and sync when the database connection is restored
- For persistent database issues, consider using MongoDB Realm/Atlas App Services for better connectivity
Monitoring and Analytics (click to expand)
- Supabase Dashboard: Track database usage, API calls, and authentication
- Firebase Analytics (if using): Track user engagement and app usage
- Vercel Analytics: Monitor page performance and user metrics
Edge Functions vs. Serverless Functions (click to expand)
This app uses both Edge Functions (for lightweight operations) and standard serverless functions (for heavier processing):
- Edge Functions: Fast, lightweight API routes that run globally close to users
- Serverless Functions: More powerful Node.js environments for database operations and complex processing
Web3 Wallet Integration (click to expand)
Neural Nexus includes a lightweight wallet connection system through the SimpleCryptoProvider
. This replaces the previous TonConnect implementation.
Enabling the Wallet Connection (click to expand)
To enable wallet connection in your application:
- Set the feature flag in your
.env.local
file:
NEXT_PUBLIC_ENABLE_SIMPLE_CRYPTO=true
-
The wallet connect button will automatically appear in the navbar when the feature flag is enabled.
-
For custom integration, you can use the
SimpleCryptoButton
component:
import dynamic from 'next/dynamic';
// Import with dynamic to avoid SSR issues
const SimpleCryptoButton = dynamic(
() => import('@/components/SimpleCryptoButton'),
{ ssr: false }
);
// Then use it in your component
function MyComponent() {
return <SimpleCryptoButton />;
}
- For direct access to wallet state, use the
useSimpleCrypto
hook:
import { useSimpleCrypto } from '@/providers/SimpleCryptoProvider';
function MyComponent() {
const { activeWallet, connectWallet, disconnectWallet } = useSimpleCrypto();
return (
<div>
{activeWallet ? (
<div>Connected to: {activeWallet}</div>
) : (
<button onClick={() => connectWallet('MetaMask')}>Connect</button>
)}
</div>
);
}
Policies & Documentation (click to expand)
We maintain comprehensive documentation on how we handle data, models, and content. Please review our policies for complete transparency:
- Privacy Policy: Learn how we protect your data and maintain information security. Read More
- Content Policy: Keep the vibes positive! Understand what content is cool to share on Neural Nexus. Read More
- Model Policies: Rules for uploading and sharing AI models. Let's keep the AI game fair and innovative. Read More
- Cookie Policy: We use cookies to make your experience smoother than butter. Find out how. Read More
- Updates & Changelog: Stay updated with the latest changes and features. We're always leveling up! Read More
These docs are here to ensure we're all on the same page, building a safe and creative space for AI innovation. Got questions? Hit us up! 💬
Build Instructions (click to expand)
When building the project for production, you might encounter "document is not defined" errors for authentication pages. This is a common issue with Next.js when client-side features are used during static site generation.
To solve this issue, use our custom build and start scripts:
# Step 1: Use our custom build script that patches the auth pages
npm run custom-build
# Step 2: Start the application using our custom server
npm run custom-start
Our custom build script (build-with-cleanup.sh
) handles the following:
- Cleans up previous build artifacts
- Runs the Next.js build process
- If auth page errors occur, it patches the build by:
- Creating fallback static HTML files for problematic routes
- Copying these files to the appropriate output directories
The custom server (dev-server.js
) then:
- Serves the static HTML fallbacks for auth routes
- Handles all other requests normally through Next.js
This approach ensures that authentication pages work correctly in production without the "document is not defined" errors.
Build Instructions for Auth Pages (click to expand)
Next.js has challenges with client-side authentication pages during static site generation, often resulting in "document is not defined" errors. This project includes special handling to resolve these issues:
Using the Custom Build Process (click to expand)
# Run the custom build script that handles auth page issues
npm run custom-build
This script:
- Cleans previous build artifacts
- Creates static HTML fallbacks for auth pages if needed
- Runs the build with proper environment variables
- Patches the generated files to ensure auth pages work correctly
Using the Custom Server (click to expand)
After building the project, start it with:
# Start the custom server that handles auth pages
npm run custom-start
This custom server serves static HTML fallbacks for authentication pages, preventing issues with client-side code during the initial page load.
How It Works (click to expand)
The solution uses multiple techniques:
- Middleware detection for build vs. runtime environments
- Static HTML fallbacks for auth pages
- Custom server for serving static content
- Next.js configuration to properly handle client-only pages
If you modify auth-related pages, ensure the build process is aware of these pages by updating the configuration in:
middleware.ts
next.config.js
build-with-cleanup.sh
Join our active community to get help, share ideas, and connect with other developers!
The application uses the following Supabase tables:
CREATE TABLE user_profiles (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
first_name TEXT,
last_name TEXT,
display_name TEXT,
email TEXT,
bio TEXT,
avatar_url TEXT,
website TEXT,
social_links JSONB,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE models (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
name TEXT NOT NULL,
description TEXT,
price DECIMAL(10, 2) DEFAULT 0,
category TEXT,
tags TEXT[],
file_url TEXT,
file_path TEXT,
file_size BIGINT,
file_type TEXT,
thumbnail_url TEXT,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
downloads INTEGER DEFAULT 0,
rating DECIMAL(3, 2) DEFAULT 0,
is_public BOOLEAN DEFAULT true,
status TEXT DEFAULT 'active'
);
- Push your code to a GitHub repository
- Go to Vercel and create a new project
- Connect your GitHub repository
- Set all the environment variables from your
.env.local
file in the Vercel dashboard - Deploy your application
- Go to your project settings in Vercel
- Navigate to Environment Variables
- Add all the variables from your
.env.local
file - Make sure to set
NEXT_PUBLIC_APP_ENV=production
- Redeploy your application to apply the changes
- In your Vercel deployment, ensure MongoDB connection string is correctly set
- Add
MONGODB_URI
andMONGODB_DB_NAME
to your environment variables - If users report profile update errors, check the following:
- MongoDB connection string should be clean without unnecessary parameters
- The IP allowlist in MongoDB Atlas should include Vercel's deployment IPs
- The application includes fallback in-memory storage if the database connection fails
- User profiles will be stored temporarily and sync when the database connection is restored
- For persistent database issues, consider using MongoDB Realm/Atlas App Services for better connectivity
Both Supabase and Firebase provide tools to monitor your application:
- Supabase Dashboard: Track database usage, API calls, and authentication
- Firebase Analytics (if using): Track user engagement and app usage
- Vercel Analytics: Monitor page performance and user metrics
This app uses both Edge Functions (for lightweight operations) and standard serverless functions (for heavier processing):
- Edge Functions: Fast, lightweight API routes that run globally close to users
- Serverless Functions: More powerful Node.js environments for database operations and complex processing
Neural Nexus includes a lightweight wallet connection system through the SimpleCryptoProvider
. This replaces the previous TonConnect implementation.
To enable wallet connection in your application:
- Set the feature flag in your
.env.local
file:
NEXT_PUBLIC_ENABLE_SIMPLE_CRYPTO=true
-
The wallet connect button will automatically appear in the navbar when the feature flag is enabled.
-
For custom integration, you can use the
SimpleCryptoButton
component:
import dynamic from 'next/dynamic';
// Import with dynamic to avoid SSR issues
const SimpleCryptoButton = dynamic(
() => import('@/components/SimpleCryptoButton'),
{ ssr: false }
);
// Then use it in your component
function MyComponent() {
return <SimpleCryptoButton />;
}
- For direct access to wallet state, use the
useSimpleCrypto
hook:
import { useSimpleCrypto } from '@/providers/SimpleCryptoProvider';
function MyComponent() {
const { activeWallet, connectWallet, disconnectWallet } = useSimpleCrypto();
return (
<div>
{activeWallet ? (
<div>Connected to: {activeWallet}</div>
) : (
<button onClick={() => connectWallet('MetaMask')}>Connect</button>
)}
</div>
);
}
We maintain comprehensive documentation on how we handle data, models, and content. Please review our policies for complete transparency:
- Privacy Policy: Learn how we protect your data and maintain information security. Read More
- Content Policy: Keep the vibes positive! Understand what content is cool to share on Neural Nexus. Read More
- Model Policies: Rules for uploading and sharing AI models. Let's keep the AI game fair and innovative. Read More
- Cookie Policy: We use cookies to make your experience smoother than butter. Find out how. Read More
- Updates & Changelog: Stay updated with the latest changes and features. We're always leveling up! Read More
These docs are here to ensure we're all on the same page, building a safe and creative space for AI innovation. Got questions? Hit us up! 💬
When building the project for production, you might encounter "document is not defined" errors for authentication pages. This is a common issue with Next.js when client-side features are used during static site generation.
To solve this issue, use our custom build and start scripts:
# Step 1: Use our custom build script that patches the auth pages
npm run custom-build
# Step 2: Start the application using our custom server
npm run custom-start
Our custom build script (build-with-cleanup.sh
) handles the following:
- Cleans up previous build artifacts
- Runs the Next.js build process
- If auth page errors occur, it patches the build by:
- Creating fallback static HTML files for problematic routes
- Copying these files to the appropriate output directories
The custom server (dev-server.js
) then:
- Serves the static HTML fallbacks for auth routes
- Handles all other requests normally through Next.js
This approach ensures that authentication pages work correctly in production without the "document is not defined" errors.
Next.js has challenges with client-side authentication pages during static site generation, often resulting in "document is not defined" errors. This project includes special handling to resolve these issues:
# Run the custom build script that handles auth page issues
npm run custom-build
This script:
- Cleans previous build artifacts
- Creates static HTML fallbacks for auth pages if needed
- Runs the build with proper environment variables
- Patches the generated files to ensure auth pages work correctly
After building the project, start it with:
# Start the custom server that handles auth pages
npm run custom-start
This custom server serves static HTML fallbacks for authentication pages, preventing issues with client-side code during the initial page load.
The solution uses multiple techniques:
- Middleware detection for build vs. runtime environments
- Static HTML fallbacks for auth pages
- Custom server for serving static content
- Next.js configuration to properly handle client-only pages
If you modify auth-related pages, ensure the build process is aware of these pages by updating the configuration in:
middleware.ts
next.config.js
build-with-cleanup.sh
Neural Nexus is a powerful platform for AI model deployment, collaboration, and marketplace. It integrates modern web technologies with AI capabilities to provide a seamless experience for researchers, developers, and users.
- 🧠 AI model marketplace and deployment
- 🔒 Secure authentication with multiple providers
- 💰 Payment processing with Stripe and Web3
- 📊 Advanced analytics dashboard
- 🚀 Fast, modern UI built with Next.js and Tailwind CSS
- Frontend: Next.js, React, Tailwind CSS
- Authentication: Supabase Auth, NextAuth.js
- Database: Supabase PostgreSQL
- Payment: Stripe, Coinbase SDK
- Deployment: Vercel/Netlify compatible
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/Drago-03/neural-nexus.git
cd neural-nexus
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your credentials
# Start development server
npm run dev
When building the project for production, you might encounter "document is not defined" errors for authentication pages. This is a common issue with Next.js when client-side features are used during static site generation.
For the best production build experience, use our custom build scripts:
# Standard build with patching
npm run build
# OR for a more thorough approach with cleanup
npm run custom-build
The build process includes:
- Pre-build preparation of static HTML fallbacks
- The main Next.js build
- Post-build patching to ensure all files are present
# Standard Next.js server
npm run start
# Custom server with enhanced handling of auth pages
npm run custom-start
These errors occur during server-side rendering of pages that use client-side browser objects. Our build process automatically handles this by:
- Using static HTML fallbacks for auth pages
- Patching build artifacts post-build
- Setting proper runtime configurations
We use the experimental edge runtime for authentication pages. If you encounter issues:
# Check that your next.config.js has the correct settings
# Ensure each auth page exports the runtime configuration
export const runtime = "experimental-edge";
If your deployment is missing critical files:
# Run the patch script manually
node ./scripts/patch-build.js
Contributions are welcome! Please check out our Contributing Guide for details.
Get paid to contribute! Check out our open bounties and earn rewards for your contributions.
This project is licensed under the MIT License - see the LICENSE file for details.
This repository uses several GitHub Actions workflows to automate processes and improve collaboration:
Pull requests are automatically labeled based on the files changed:
- frontend: Changes to app, src, components, or public directories
- backend: Changes to lib, api, server, or providers directories
- documentation: Changes to markdown files or docs directory
- config: Changes to configuration files
- dependencies: Changes to package.json or lock files
- testing: Changes to test files
- ui: Changes to CSS, styles, or UI components
- auth: Changes to authentication-related code
- feature: Changes to feature-specific directories
PRs are also labeled by size:
- XS: < 10 lines
- S: 10-99 lines
- M: 100-299 lines
- L: 300-499 lines
- XL: 500-999 lines
- XXL: 1000+ lines
Issues are automatically labeled based on their title and content:
- bug: Issues reporting bugs or problems
- enhancement: Feature requests and improvements
- documentation: Documentation-related issues
- question: Questions and help requests
- performance: Performance-related issues
- security: Security-related issues
- ui: UI/UX-related issues
- auth: Authentication-related issues
- good first issue: Issues suitable for newcomers
Dependabot automatically creates PRs for dependency updates:
- NPM dependencies are checked weekly
- GitHub Actions are checked weekly
- All updates require manual review and approval
Issues and PRs with no activity for 30 days are marked as stale and closed after 7 more days of inactivity. Issues labeled as bug, security, enhancement, documentation, or good first issue are exempt.
The CODEOWNERS file automatically assigns reviewers to PRs based on the files changed.
We're grateful to our sponsors who make this project possible.
The Neural Nexus application includes a flexible storage service that can operate in two modes:
-
Google Cloud Storage (Production): When properly configured with Google Cloud credentials, the application will use Google Cloud Storage for file uploads and data storage.
-
Local Fallback (Development): If Google Cloud credentials are missing or invalid, the application will automatically fall back to local file system storage, which is ideal for development and testing.
To use Google Cloud Storage, set the following environment variables:
GOOGLE_CLOUD_PROJECT_ID=your-project-id
GOOGLE_CLOUD_STORAGE_BUCKET=your-bucket-name
GOOGLE_CLOUD_ACCESS_KEY=your-access-key
GOOGLE_CLOUD_SECRET_KEY=your-secret-key
If these variables are not set, the system will automatically use the local storage fallback.
You can test the storage implementation using the provided test scripts:
# Test local storage fallback
node test-storage-fallback.js
The storage service is used for:
- Storing model files
- Uploading model thumbnails
- Storing user assets
- Managing application data
Neural Nexus now supports storing user profiles and avatars on Google Cloud Storage. This includes:
- Profile Data Storage: User profiles are stored in Google Cloud Storage with automatic fallback to in-memory storage for development.
- Avatar Upload: Users can upload, update, and delete their profile pictures, which are stored in Google Cloud Storage.
- Email Notifications: Users receive email notifications when their profiles are updated (if enabled in preferences).
- Create a Google Cloud Storage bucket for your user profiles and avatars
- Add the following environment variables to your
.env.local
file:GOOGLE_CLOUD_PROJECT_ID=your_project_id GOOGLE_CLOUD_STORAGE_BUCKET=your_bucket_name GOOGLE_CLOUD_ACCESS_KEY=your_access_key GOOGLE_CLOUD_SECRET_KEY=your_secret_key GOOGLE_CLOUD_CLIENT_EMAIL=your_client_email
- Ensure your storage bucket has proper CORS configuration to allow uploads from your domain
- Profile Editing: Edit your profile at
/profile/edit
- Profile Viewing: View your profile at
/profile
- Avatar Management: Upload, update, and delete your avatar
- Social Links: Add links to your social media profiles
- Customizable Settings: Manage email notification preferences
For more details, see the User Profiles Documentation.
Got ideas to make this even more lit? Drop a PR or issue. Let's build this together! 💡
Thanks to all our awesome contributors who are helping build Neural Nexus! 🔥
© 2025 Indie Hub. All rights reserved. Keep it real, fam! ✌️