This repository contains the source code for my personal site, which is currently under development. The backend is built using Django and Django REST framework, with data stored in a MySQL database.
The purpose of this site is to have a single location where I can express myself not only as a developer, but in all of those domains which are important to me. I have always had a wide range of interests and hobbies. This site is designed to both reflect and promote my journey.
Django | Django REST Framework | MySQL
- API Endpoints: Custom API endpoints to manage blog posts, portfolio items, and user inquiries efficiently.
- Authentication and Authorization: Implemented JWT-based authentication to secure endpoints and ensure data protection.
- Dynamic Content Management: Users can dynamically manage blog and portfolio content via admin panel or API, providing flexibility in content updates.
- Email Integration: Automatic email notifications for new user inquiries or comments, facilitating prompt responses.
- Data Modeling: Complex data models to represent relationships between different types of content (e.g., blog posts, portfolio projects, comments).
- Frontend Development: A React.js frontend that consumes the REST API, providing a dynamic user experience.
- User Dashboard: For managing personal information, blog posts, and portfolio projects directly from the frontend.
- Interactive UI Components: Advanced UI components like dynamic filters for the portfolio, real-time comment sections, and more.
The portfolio app manages completed software projects, with sorting, filtering, and pagination functionality.
Manages all blog-related functionality, including creating, updating, and deleting blog posts. Also handles comments and tagging.
A small app that allows for logging of daily progress in different domains.
Allows for generating a bullet point list for each skill representing what I've done what I've learned.
Handles user inquiries and contact form submissions. It integrates with email backend for notifications.
- Python 3.12+
- pip
- Virtualenv (optional)
- Docker
- Clone the repository to your local machine.
git clone https://github.com/jakegodsall/personal-site
- Navigate to the root directory of the project.
cd personal-site
- Environment Variables: Ensure you have an
.env
file with the necessary environment variables for your Django application and MySQL database. This.env
file will be used by Docker Compose to set the database credentials and provide aSECRET_KEY
for Django.
DJANGO_SECRET_KEY
DB_NAME
DB_USER
DB_PASSWORD
DB_HOST
DB_PORT
- Build the images and run the containers with Docker Compose
docker compose up --build
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions, queries or the like, please contact me at jake.edward.godsall@gmail.com.