Um sistema completo para desenvolvedores freelance gerenciarem seu portfólio, projetos, integrações e agendamentos.
- Beautiful Portfolio Homepage: Showcase your work with a modern, responsive design featuring parallax effects and animations
- Project Management: Create, edit, and delete projects to display in your portfolio
- Authentication: Secure login and registration system
- Dashboard: Manage your projects, appointments, and reminders
- Dark Mode: Built-in dark mode support
- Responsive Design: Looks great on all devices
- Company Profile: Manage your company information and branding
- Personal Profile: Customize your personal information and skills
- PWA Support: Progressive Web App for offline access
- Optimized Performance: Fast loading times and efficient caching
- Frontend: Next.js 15, React, TypeScript, Tailwind CSS, Framer Motion
- Authentication: Supabase Auth
- Database: Supabase (PostgreSQL)
- ORM: Prisma
- Storage: Supabase Storage
- Styling: Tailwind CSS, Headless UI
- State Management: React Query, Context API
- HTTP Client: Axios with interceptors
- PWA: Next-PWA for offline support
- Performance: Bundle analyzer, code splitting, lazy loading
- Node.js 18+ and npm
- Supabase account (for database and authentication)
-
Clone the repository:
git clone https://github.com/yourusername/devportfolio.git cd devportfolio -
Install dependencies:
npm install
-
Create a
.env.localfile in the root directory with your Supabase and Prisma credentials:NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key DATABASE_URL="postgresql://postgres:[email protected]:5432/postgres" -
Generate the Prisma client:
npm run prisma:generate
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
-
Create a new Supabase project
-
Get your Supabase URL, anon key, and database connection string from the project settings
-
Create a
.env.localfile based on the.env.exampletemplate and add your credentials -
Generate the Prisma client:
npm run prisma:generate
-
Generate the SQL schema from Prisma:
npm run generate-schema
This will create a SQL file in the
supabasedirectory. -
Run the generated SQL in the Supabase SQL Editor
-
Create a new Supabase project
-
Get your Supabase URL and anon key from the project settings
-
Create a
.env.localfile based on the.env.exampletemplate and add your Supabase credentials -
Generate the SQL for database migration:
npm run migrate
This will output the SQL that you need to run in the Supabase SQL Editor.
-
(Optional) Generate the SQL for seeding the database with sample data:
npm run seed
This will output the SQL that you need to run in the Supabase SQL Editor.
-
Go to your Supabase project dashboard, navigate to the SQL Editor, and run the SQL scripts.
/src
/app # Next.js app directory
/dashboard # Dashboard pages
/login # Authentication pages
/api # API routes
/components # Reusable UI components
/landing # Landing page components
/hooks # Custom React hooks
/lib # Utility functions and API clients
/types # TypeScript type definitions
/public # Static assets
/icons # PWA icons
/prisma # Prisma schema and migrations
/scripts # Utility scripts
npm run dev- Start the development server with Turbopacknpm run build- Build the project for productionnpm run start- Start the production servernpm run lint- Run ESLintnpm run analyze- Analyze the bundle sizenpm run analyze:server- Analyze the server bundlenpm run analyze:browser- Analyze the browser bundlenpm run migrate- Run database migrationsnpm run seed- Seed the database with sample datanpm run prisma:generate- Generate Prisma clientnpm run prisma:studio- Open Prisma Studionpm run build:production- Build for production with production env varsnpm run start:production- Start production server with production env varsnpm run build:staging- Build for staging environmentnpm run start:staging- Start server in staging environmentnpm run clean- Remove the .next directorynpm run build:clean- Clean and buildnpm run build:production:clean- Clean and build for production
The project includes several optimizations for best performance:
- React Query: Efficient server state management with smart caching
- Axios with Interceptors: Automatic authentication token management
- PWA: Progressive Web App support with offline caching
- Image Optimization: Automatic image processing for better performance
- Code Splitting: Automatic code splitting for faster loading
- Prefetching: Route prefetching for instant navigation
- Lazy Loading: On-demand loading of heavy components
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.