A dual-focused Streamlit portfolio showcasing DevOps engineering expertise alongside passion for poetry writing and listening.
- Professional Overview: Career highlights with interactive metrics
- Technical Journey: Interactive timeline with detailed work experience
- Skills Visualization: Charts and proficiency levels across multiple categories
- Poetry Section: Creative content with favorite quotes and reflections
- AI Assistant: Smart search and Q&A for instant information retrieval
- Admin Panel: Content management system for easy updates
- Contact Information: Professional links and contact details
- Python 3.11 or higher
- pip or uv package manager
# Clone repository
git clone <repository-url>
cd portfolio-website
# Run setup script
python setup.py# Make script executable
chmod +x deploy.sh
# Run interactive setup
./deploy.sh
# Or use specific commands
./deploy.sh install # Install dependencies
./deploy.sh both # Start both applications
./deploy.sh portfolio # Start portfolio only
./deploy.sh admin # Start admin panel onlygit clone <repository-url>
cd portfolio-website# Using pip
pip install streamlit pandas plotly
# Check installation
python -c "import streamlit, pandas, plotly; print('All packages installed successfully')"streamlit run app.py --server.port 5000Visit: http://localhost:5000
streamlit run admin.py --server.port 5001Visit: http://localhost:5001
- Password:
admin123
# In separate terminals
streamlit run app.py --server.port 5000 &
streamlit run admin.py --server.port 5001 &-
Prepare Repository
- Push code to GitHub repository
- Ensure
requirements.txtexists with dependencies
-
Deploy to Streamlit Cloud
- Go to share.streamlit.io
- Connect your GitHub account
- Select repository and branch
- Set main file path:
app.py - Deploy
-
Admin Panel Deployment
- Create separate app for admin panel
- Set main file path:
admin.py - Deploy to different subdomain
# Create Procfile
echo "web: streamlit run app.py --server.port=\$PORT --server.address=0.0.0.0" > Procfile
# Deploy
heroku create your-portfolio-app
git push heroku main# Install Railway CLI
npm install -g @railway/cli
# Deploy
railway login
railway init
railway up# Build and run
docker build -t akhilesh-portfolio .
docker run -p 8501:8501 akhilesh-portfolio# Start both portfolio and admin panel
docker-compose up -d
# Access applications
# Portfolio: http://localhost:8501
# Admin Panel: http://localhost:8502# Build image
docker build -t portfolio-app .
# Run portfolio only
docker run -p 5000:8501 portfolio-app
# Run with volume for data persistence
docker run -p 5000:8501 -v $(pwd)/data:/app/data portfolio-app
# Stop containers
docker-compose downportfolio-website/
βββ app.py # Main portfolio application
βββ admin.py # Admin panel for content management
βββ requirements.txt # Python dependencies
βββ .streamlit/
β βββ config.toml # Streamlit configuration
βββ components/ # Reusable UI components
β βββ career_timeline.py
β βββ contact_info.py
β βββ poetry_section.py
β βββ skills_visualization.py
βββ data/ # Portfolio data modules
β βββ work_experience.py
β βββ skills_data.py
β βββ poetry_content.py
β βββ certifications.py
βββ README.md
Located in .streamlit/config.toml:
[server]
headless = true
address = "0.0.0.0"
port = 5000
[theme]
base = "light"# For production deployment
STREAMLIT_SERVER_PORT=5000
STREAMLIT_SERVER_ADDRESS=0.0.0.0- Access admin panel at port 5001
- Login with password:
admin123 - Navigate through tabs to manage:
- Work Experience
- Skills & Certifications
- Poetry Content
- Data Backup
Edit files in data/ directory:
work_experience.py- Career historyskills_data.py- Technical skills and certificationspoetry_content.py- Poetry quotes and content
After manual edits, restart the application.
The AI Assistant provides:
- Smart Q&A: Natural language queries about experience and skills
- Skills Search: Find specific technologies and proficiency levels
- Experience Search: Search through job descriptions and responsibilities
- Quick Facts: Instant metrics and statistics
Example queries:
- "What is Akhilesh's current role?"
- "What cloud platforms does he work with?"
- "Tell me about his DevOps skills"
- "How can I contact him?"
- Change default password in
admin.py - For production, implement proper authentication
- Consider environment variables for sensitive data
- Use HTTPS in production
- Set proper CORS headers
- Implement rate limiting if needed
- Use
streamlit runwith--server.runOnSave=truefor auto-reload - Enable caching for data loading functions
- Implement Streamlit caching decorators
- Optimize image assets
- Use CDN for static resources
Port Already in Use
# Kill process on port 5000
lsof -ti:5000 | xargs kill -9
# Or use different port
streamlit run app.py --server.port 5001Module Import Errors
# Ensure all dependencies are installed
pip install -r requirements.txt
# Check Python path
python -c "import streamlit; print('Success')"Deployment Issues
- Ensure
requirements.txtincludes all dependencies - Check Python version compatibility
- Verify file paths are relative
- Check Streamlit logs in terminal
- Use
st.write()for debugging - Enable verbose logging in config
- Portfolio views and interactions
- AI Assistant query patterns
- Admin panel usage
# Google Analytics (optional)
# Add tracking code to Streamlit app- Update portfolio data through admin panel
- Review and refresh skills proficiency levels
- Add new certifications and experiences
- Update poetry content and quotes
# Create feature branch
git checkout -b feature/new-content
# Commit changes
git add .
git commit -m "Update portfolio content"
# Deploy
git push origin mainFor issues or questions:
- Email: akhileshranjan.ks@gmail.com
- Create GitHub issue for technical problems
- Check Streamlit documentation: https://docs.streamlit.io
This project is open source and available under the MIT License.
- Fork the repository
- Create feature branch
- Make changes
- Test locally
- Submit pull request
Built with β€οΈ using Streamlit, Python, and Plotly
"Where cloud architecture meets creative expression"