# User Portfolio Management

- URL: https://www.guneyunay.com/en/projects/user-portfolio-management
- Live demo: https://user-portfolio-management-ten.vercel.app/
- Stack: Next.js, tRPC, Drizzle ORM, Better-Auth
- Date: 2024-11-13

[![](https://www.guneyunay.com/projects/user-portfolio-management.jpg)](https://user-portfolio-management-ten.vercel.app/)

# User Portfolio Management

  `Next.js` `tRPC` `Drizzle ORM` 
  `React` `TailwindCSS` `PostgreSQL` 
  `Zod`

Hello! I’ve decided to present my projects in a more personal and conversational
tone, and this project marks the beginning of that journey! 😊

For this project, I chose a full-stack challenge provided by **DevChallenges**
and created `User Portfolio Management.` The goal was to build a modern web
application where developers can showcase their projects and easily share links
to their work.

During development, I discovered
[**Better Auth**](https://www.better-auth.com/), and I was excited to implement
it. Even though it’s still in beta, I really enjoyed using it and plan to
continue once it reaches v1. The application supports both **GitHub OAuth** and
**email/password authentication**, and both flows work seamlessly.

Once you fill out your personal information and portfolio details, you can share
your portfolio link on platforms like LinkedIn or GitHub, letting your projects
speak for themselves.

I had so much fun building this project, and I hope you enjoy exploring it as
much as I enjoyed coding it.

Happy coding! 🚀

## Key Features 🌟

- **Portfolio Management**: Users can add, edit, and delete projects, complete
  with images and descriptions.
- **Authentication**: Supports login via GitHub OAuth and email/password
  authentication.
- **Image Handling**: Projects include image upload with resizing to ensure
  optimal display.
- **Responsive UI**: Built with TailwindCSS for a modern, mobile-friendly
  experience.
- **Database**: Fully integrated with PostgreSQL using Drizzle ORM.
- **Secure Password Reset**: Allows users to reset their passwords securely.

## Forgot Password Functionality 🔐

  If you forget your password, click the **"Forgot Password"** link on the login
  page. After entering your registered email, you'll receive a password reset
  link via email.

### Important Note:

- The password reset email might land in your **Spam/Junk** folder.
- Sender email: `nasilolurduuu@gmail.com` (used for testing and other projects).

Follow the link in the email to securely reset your password.

## Technologies Used 🛠️

- **Next.js**: Framework for building the app with server and client components.
- **tRPC**: For type-safe API interactions.
- **Drizzle ORM**: Simplified database interactions with PostgreSQL.
- **TailwindCSS**: Modern styling framework for responsive design.
- **Zod**: For schema validation in forms and APIs.

## Links

- **Source Code**:
  [GitHub Repository](https://github.com/unaygney/user-portfolio-management)
- **Demo**:
  [Live Application](https://user-portfolio-management-ten.vercel.app/)
