Welcome to my personal portfolio repository! This project showcases my skills, projects, and professional experience as an Architect, Senior Engineering Manager, and Full-Stack Developer.
- Next.js - React framework for production
- React - JavaScript library for building user interfaces
- TypeScript - Typed superset of JavaScript
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Re-usable components built with Radix UI and Tailwind CSS
- AWS - Cloud hosting and serverless functions
app/
- Next.js app directory containing page components and routingcomponents/
- Reusable React componentsdb/
- Database schema and connectionlib/
- Utility functions and custom hooksmodels/
- This is where domain logic for accessing database models should residepublic/
- Static assetsstyles/
- Global styles and Tailwind CSS configuration
- Node.js (v18 or later)
- npm or yarn
-
Clone the repository
git clone [email protected]:wiseiodev/portfolio.git
-
Navigate to the project directory
cd portfolio
-
Install dependencies
npm install # or yarn install
-
Start the development server
npm run dev # or yarn dev
-
Open http://localhost:3000 in your browser to view the portfolio
- Home: Landing page with an overview of skills and projects
- About: Detailed information about professional background and expertise
- Projects: Showcase of key projects and achievements
- Skills: Comprehensive list of technical skills and proficiencies
- Resume: Downloadable resume and detailed professional history
- Contact: Form to get in touch
This portfolio uses AWS services for backend functionality. There are two ways to set up the backend connection:
If you're deploying on AWS, you can use IAM roles to securely authenticate and connect to AWS services without exposing your AWS credentials.
- Set up an IAM role with the necessary permissions for your application.
- Attach the IAM role to the EC2 instance or ECS task running your application.
- Ensure your application is configured to use the IAM role for authentication.
This portfolio uses Drizzle ORM and Neon DB for database management.
- Ensure you have the necessary environment variables set up in your
.env
file:
POSTGRES_URL=your-postgres-url
-
The database schema is defined using Drizzle ORM in the
db/schema
directory. For example, the technologies schema and projects schema. -
To generate and run migrations, use the following commands:
npm run db:generate
npm run db:migrate
- To seed the database with initial data, use:
npm run db:seed
This will add technology and categories, as well as my initial projects, which you can erase or use as a sample to guide you.
The database configuration is defined in drizzle.config.ts
:
import '@/db/env-config';
import { defineConfig } from 'drizzle-kit';
export default defineConfig({
dialect: 'postgresql',
schema: './db/schema',
out: './db/migrations',
dbCredentials: {
url: process.env.POSTGRES_URL || 'no-db-url-found'
}
});
To customize the portfolio for your own use:
- Update the content in each page component (
app/*/page.tsx
) - Modify the
components/responsive-header.tsx
to update the navigation menu - Replace images in the
public/
andassets/
directory with your own - Update colors and styles in
tailwind.config.ts
andstyles/globals.css
This portfolio is set up for easy deployment on AWS using SST v3:
Getting Started: NextJS w/ SST
npm run build
# or
yarn build
While this is a personal portfolio, suggestions and feedback are welcome! Feel free to open an issue or submit a pull request.
This project is open source and available under the MIT License.
Dan Wise - [email protected]
LinkedIn: My LinkedIn Profile
Project Link: https://github.com/wiseiodev/portfolio