A modern, full-stack web application showcasing a portfolio website with admin dashboard capabilities. This project demonstrates proficiency in both frontend and backend development using modern technologies and best practices.
- Next.js 15 with TypeScript
- React 19 for UI components
- TailwindCSS for styling
- Shadcn UI for accessible component primitives
- Motion for animations
- TypeScript for type safety
- Zod for api validation
- Express.js with TypeScript
- PostgreSQL database
- Drizzle ORM for database operations
- JWT for authentication
- Multer for file uploads
- TypeScript for type safety
- ✨ Smooth animations and transitions
- 🛡️ Type-safe frontend and backend with TypeScript
- 📊 Database management with Drizzle ORM
- 📊 Admin dashboard for content management
- 💼 Project portfolio management
- 👥 Testimonials management
- 📤 File upload capabilities
- 🔐 Secure authentication system
- Node.js (v18 or higher)
- PostgreSQL (v13 or higher)
- pnpm (recommended) or npm
- Clone the repository:
git clone <repository-url>
cd aesthetic-webworks
- Install dependencies for both client and server:
# Install client dependencies
cd client
pnpm install
# Install server dependencies
cd ../server
pnpm install
- Set up environment variables:
For server (.env):
DATABASE_URL=postgresql://username:password@localhost:5432/your_database
JWT_SECRET=your_jwt_secret
PORT=8000
For client (.env.local):
NEXT_PUBLIC_API_URL=http://localhost:8000
- Initialize the database:
cd server
pnpm db:push
pnpm db:populate # Populates the database with initial data
- Start the server:
cd server
pnpm dev
- In a new terminal, start the client:
cd client
pnpm dev
pnpm dev
- Start development serverpnpm build
- Build for productionpnpm start
- Start production serverpnpm db:populate
- Populate database with initial datapnpm db:studio
- Open Drizzle Studio for database managementpnpm lint
- Run lintingpnpm format
- Format code
pnpm dev
- Start development serverpnpm build
- Build for productionpnpm start
- Start production serverpnpm lint
- Run linting
.
├── client/ # Frontend Next.js application
│ ├── app/ # Next.js app directory
│ ├── components/ # Reusable components
│ ├── lib/ # Utility functions and hooks
│ └── public/ # Static assets
│
└── server/ # Backend Express application
├── src/
│ ├── routes/ # API routes
│ ├── controllers/ # Route controllers
│ ├── middleware/ # Custom middleware
│ └── db/ # Database configuration and schemas
└── dist/ # Compiled TypeScript
This is an interview project, but contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.