This project is a full-stack portfolio template built using Next.js, Tailwind CSS, and Shadcn-ui for the frontend and Express.js for the backend. The template includes a portfolio page, login functionality, and a secure inbox to store and read messages. Messages are saved in a MongoDB database.
- Portfolio Page: Includes sections like Hero, About Me, Experience, and a Contact Form.
- Login Functionality: Allows users to log in to access the inbox.
- Inbox: Securely stores and displays messages received from the contact form.
- API: Handles login, message storage, and retrieval.
api/
: Contains all backend code including API routes.web/
: Contains all frontend code.
- Frontend: Next.js, Tailwind CSS, Shadcn-ui
- Backend: Express.js, Node.js
- Database: MongoDB
To get started with this project:
-
Clone the repository:
git clone https://github.com/Khalil-Bchir/nextjs-portfolio-template.git
-
Install dependencies for both frontend and backend:
cd nextjs-portfolio-template/web npm install cd ../api npm install
-
Set up MongoDB:
- Ensure MongoDB is installed and running locally or use a cloud-based MongoDB service. Update the MongoDB URI in your backend configuration (
api/.env
).
- Ensure MongoDB is installed and running locally or use a cloud-based MongoDB service. Update the MongoDB URI in your backend configuration (
-
Start the backend and frontend servers:
# Start backend server cd api npm run dev # Start frontend server cd ../web npm run dev
-
Open your browser and navigate to http://localhost:3000 to view the application.
To access the inbox:
- Click on Inbox in the footer of the portfolio page.
- You will be redirected to a login page.
- Use the following credentials for the demo:
- Email: [email protected]
- Password: passer
- After logging in, you will be able to view and manage messages received from the contact form on the portfolio main page.
Check out the live demo here.