This project is an iterative full-stack web application designed as a personal portfolio and blog. It serves as a dynamic platform to continuously showcase my evolving skills, projects, and technical expertise as a software engineer. The application features a responsive frontend built with React, a robust backend powered by Django and Django Rest Framework, and integrates strong security practices, including a nonce-based Content Security Policy.
This open-source framework provides a quick way to get a full-stack application up and running, leveraging the power of Django and React. Aspiring software engineers can utilize this project as a template to showcase their own work and administer their personal blog. While currently managed via custom Django views, future iterations aim to integrate Wagtail's blogging CMS offerings while providing full customizability to the developer.
- Responsive Design: Crafted with Tailwind CSS for a seamless experience across all devices.
- Project Showcase: Detailed descriptions and direct links to GitHub repositories for all featured projects.
- Integrated Blog: A custom, self-hosted blog for technical musings and insights.
- Robust Security: Implements advanced security measures including CAPTCHA, HTTPS, Rate Limiting, and a strict, nonce-based Content Security Policy (CSP).
- Dynamic User Interface: A fast and interactive user experience powered by React.
Follow these steps to set up and run the project locally.
- Python 3.12.7+
- Node.js and npm (or Yarn)
- Clone the repository:
git clone https://github.com/your-username/Developer-Portfolio-Platform.git cd Developer-Portfolio-Platform - Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
- Install Python dependencies:
This project uses
pip-toolsfor dependency management.To update dependencies, modifypip install -r requirements.txt
requirements.inand then compilerequirements.txt:pip-compile requirements.in pip install -r requirements.txt
- Apply database migrations:
python manage.py migrate
- Create a superuser (optional, for admin access):
python manage.py createsuperuser
- Run the Django development server:
python manage.py runserver
- Navigate to the frontend directory:
cd frontend - Install Node.js dependencies:
npm install # or yarn install - Build the frontend assets:
For development with hot-reloading:
npm run build # or yarn buildnpm run dev # or yarn dev
Ensure both the Django backend and React frontend development servers are running.
- Backend:
python manage.py runserver(usually onhttp://127.0.0.1:8000/) - Frontend:
npm run dev(webpack will build assets and Django will serve them)
You can then access the application in your web browser at http://127.0.0.1:8000/ (or the address where your Django server is running).
Languages:
- Python
- JavaScript
- SQL
- Bash
- HTML/CSS
Frontend:
- React
- Tailwind CSS
- Daisy UI
Backend:
- Django
- Django Rest Framework
- Node.js
Database:
- Current - SQLite3
- Soon - PostgreSQL
DevOps:
- GitHub Actions
- Gunicorn
Developer Tools:
- Git
Security:
- Hashing
- CAPTCHA
- HTTPS
- Rate Limiting
- Content Security Policy (CSP) via
django-csp - Nonce generation/handling for scripts