A web application that automatically generates professional portfolio websites based on user input.
Before you begin, ensure you have the following installed:
- Node.js (v14 or higher)
- MongoDB
- Git
- Create project structure
mkdir Portfolio
cd Portfolio
- Set up server
# Create server directory and initialize
mkdir server
cd server
npm init -y
# Install server dependencies
npm install express mongoose multer cors dotenv nodemon
# Create necessary directories
mkdir models routes controllers uploads
- Set up client
# Go back to project root and create React app
cd ..
npx create-react-app client
# Install client dependencies
cd client
npm install react-router-dom axios
- Configure environment variables
# Go to server directory
cd ../server
# Create .env file (Windows PowerShell)
echo "PORT=5000
MONGODB_URI=your_mongodb_atlas_connection_string" | Out-File -Encoding utf8 .env
- Start MongoDB
# Open a new PowerShell window as Administrator
Start-Service MongoDB
- Start the Server
# In the server directory
cd server
npm run dev
- Start the Client
# Open a new terminal
cd client
npm start
The application should now be running at:
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
If you encounter the "Cannot find module" error:
- Ensure you're in the correct directory:
# Check current directory
pwd
# Should be in the server directory when running server
cd C:\path\to\Portfolio\server
- Verify file existence:
# List files to ensure server.js exists
dir
- Reinstall dependencies:
npm install
- Try running with full path:
node ./server.js
portfolio-generator/
├── client/ # React frontend
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── assets/
│ │ └── styles/
└── server/ # Node.js backend
├── models/
├── routes/
├── controllers/
└── uploads/ # For storing uploaded files
- Open http://localhost:3000 in your browser
- Fill in your portfolio details:
- Basic Information (name, bio, profile picture)
- Skills & Technologies
- Projects
- Contact Information
- Resume
- Submit the form
- Access your generated portfolio at the provided URL
To modify the default ports:
- Server: Edit the PORT in
.env
- Client: Create
.env
in client directory and setPORT=<desired-port>
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details