Skip to content

Anushre2005/UpNShow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Portfolio MERN Application

A full-stack MERN (MongoDB, Express, React, Node.js) based Portfolio Management System that allows users to create an account, manage their portfolio items, upload files, and share a public view of their work using usernames.


πŸš€ Features

βœ… User Authentication

  • User Signup and Login
  • JWT-based authentication
  • Secure password hashing (bcrypt)

βœ… Portfolio Management

  • Add portfolio items
  • Edit existing items
  • Delete items
  • Toggle public/private visibility

βœ… File Upload Support

  • Upload PDFs, images, documents from laptop
  • Files stored in backend /uploads directory

βœ… Public Portfolio View

  • View any user's public portfolio by selecting their username
  • No MongoDB ID exposure

βœ… Deployment Ready

  • Backend deployed on Render
  • Frontend deployed on Vercel

πŸ›  Technology Stack

Frontend

  • React
  • React Router DOM
  • Axios
  • CSS

Backend

  • Node.js
  • Express.js
  • MongoDB Atlas
  • Mongoose
  • Multer (file upload)
  • JWT
  • bcrypt

πŸ“ Project Structure

wp-mini-project/
β”‚
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ middleware/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ uploads/
β”‚   β”œβ”€β”€ server.js
β”‚   └── package.json
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ App.jsx
β”‚   β”‚   β”œβ”€β”€ index.jsx
β”‚   β”‚   └── styles.css
β”‚   └── package.json
β”‚
└── README.md

πŸ”— API Endpoints

Authentication

  • POST /api/auth/register
  • POST /api/auth/login
  • GET /api/auth/me
  • GET /api/usernames

Portfolio

  • POST /api/portfolio
  • GET /api/portfolio
  • GET /api/portfolio/user/:username
  • PUT /api/portfolio/:id
  • DELETE /api/portfolio/:id

Total: 9 API Endpoints


βš™οΈ Local Setup Instructions

1️⃣ Backend Setup

cd backend
npm install

Create .env file:

MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
CLIENT_URL=http://localhost:5173

Run backend:

npm start

2️⃣ Frontend Setup

cd frontend
npm install

Create .env file:

VITE_API_URL=http://localhost:3000/api

Run frontend:

npm run dev

🌍 Deployment

Backend (Render)

  • Create Web Service
  • Root Directory: backend
  • Build Command: npm install
  • Start Command: node server.js

Environment Variables:

MONGO_URI = your_mongodb_uri
JWT_SECRET = your_secret
CLIENT_URL = https://your-vercel-url

Frontend (Vercel)

  • Root Directory: frontend
  • Framework: Vite / React
  • Env Variable:
VITE_API_URL = https://your-render-url/api

πŸ” Middleware Used

Middleware Purpose
JWT Auth Protect routes
Multer Handle file uploads
CORS Allow frontend-backend communication
express.json Parse JSON data

βš› React Hooks Used

  • useState
  • useEffect
  • useNavigate
  • useParams

Total Hook Calls: 24


πŸ‘¨β€πŸ’» How It Works

  1. User signs up or logs in
  2. JWT token is issued
  3. User accesses portfolio dashboard
  4. User adds/uploads portfolio items
  5. Public users can view shared portfolios via username dropdown

πŸ§ͺ Testing Checklist

  • Signup working βœ…
  • Login working βœ…
  • File upload βœ…
  • Edit/Delete βœ…
  • Public view βœ…
  • Dropdown username βœ…

πŸ“Œ Future Improvements

  • Cloud storage integration (Cloudinary / Firebase)
  • Admin panel
  • User profile customization
  • Theme selection
  • Analytics dashboard

πŸ‘₯ Developed By

πŸ“ Project Note

This is my first complete full-stack web development project, where I designed, developed, and integrated both the backend and frontend from scratch. The project demonstrates my learning journey in connecting server-side logic with client-side interfaces, handling database operations, implementing authentication, and ensuring smooth communication between frontend and backend using RESTful APIs.

It reflects my practical understanding of end-to-end web development, including deployment and real-world integration practices.


πŸ‘₯ Developed By

Mini Project - MERN Stack Portfolio System


βœ… Conclusion

This project demonstrates a complete MERN stack implementation with authentication, secure APIs, real-time CRUD operations, and professional deployment practices suitable for academic and real-world use.


Feel free to fork, modify and enhance this project πŸš€

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors