Skip to content

Commit 6f043be

Browse files
authored
Update README.md
1 parent 538c321 commit 6f043be

File tree

1 file changed

+59
-32
lines changed

1 file changed

+59
-32
lines changed

README.md

Lines changed: 59 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,94 +1,121 @@
11
# Personal Website Project
22

3-
A Django-based personal website project aimed at building an advanced portfolio platform. Currently, the project focuses on backend development, with basic user authentication implemented.
3+
A Django-based personal website project aimed at showcasing backend development skills while building the foundation for a professional portfolio platform. The project currently focuses on backend functionality, with a basic frontend skeleton to support future interactive features.
44

55
---
66

77
## Table of Contents
88

9-
- Overview
10-
- Features
11-
- Installation
12-
- Usage
13-
- Future Development
14-
- License
9+
- [Overview](#overview)
10+
- [Technology Stack](#technology-stack)
11+
- [Features](#features)
12+
- [Installation](#installation)
13+
- [Usage](#usage)
14+
- [Future Development](#future-development)
15+
- [License](#license)
1516

1617
---
1718

1819
## Overview
1920

20-
This project is the foundation for a personal portfolio website. The backend currently supports:
21+
This Django project is a personal website designed to demonstrate backend engineering capabilities, while serving as a platform for a portfolio.
2122

22-
- User registration and login
23-
- Basic session-based authentication (login/logout)
24-
- Protected index page that checks whether a user is logged in
23+
Current backend functionality includes:
2524

26-
The project is intended to be expanded into an interactive portfolio showcasing projects and personal achievements.
25+
- Passwordless user registration and login using **magic links** sent via email
26+
- Email verification workflow to ensure valid accounts
27+
- Mailing list opt-in system for newsletters and updates
28+
- Custom User model storing extended information (email, name, verification status, consent)
29+
- Basic frontend skeleton using HTML and Tailwind CSS for structure and forms
30+
31+
The project is intended to evolve into a fully interactive portfolio website with dynamic content and modern frontend enhancements.
32+
33+
---
34+
35+
## Technology Stack
36+
37+
- Python 3.11
38+
- Django 5.x
39+
- SQLite (default; can be swapped with PostgreSQL or other DB)
40+
- Tailwind CSS (frontend skeleton)
2741

2842
---
2943

3044
## Features
3145

32-
- User Authentication: Users can register, log in, and log out.
33-
- Protected Index Page: /main checks if a user is logged in.
34-
- Logged-in users see users.html (confirmation they are authenticated).
35-
- Unauthenticated users are redirected to the login page.
36-
- Basic Sessions: User authentication uses Django’s built-in sessions.
37-
- Backend-Focused: Currently focuses on backend; frontend enhancements are planned.
46+
- **User Authentication**: Register and log in using secure, signed email tokens (magic links)
47+
- **Email Verification**: Users must verify their email before gaining full access
48+
- **Mailing List Consent**: Optional opt-in during registration for newsletters
49+
- **Custom User Model**: Stores email, name, verification status, and mailing list preference
50+
- **Backend-Focused Architecture**: Demonstrates session management, token signing, and secure flows
51+
- **Basic HTML Templates**: Provide structural placeholders for future interactive pages
3852

3953
---
4054

4155
## Installation
4256

4357
1. Clone the repository:
4458

59+
```
4560
git clone https://github.com/OhACD/website
4661
cd website/my_website
62+
```
4763

4864
2. Create a virtual environment and activate it:
4965

66+
```
5067
python -m venv .venv
51-
# Windows
68+
# Windows (PowerShell)
5269
.venv\Scripts\Activate.ps1
53-
# Linux/Mac
70+
# Linux / Mac
5471
source .venv/bin/activate
72+
```
5573

5674
3. Install dependencies:
5775

76+
```
5877
pip install -r requirements.txt
78+
```
5979

6080
4. Apply migrations:
6181

82+
```
6283
python manage.py migrate
84+
```
6385

6486
5. Run the development server:
6587

88+
```
6689
python manage.py runserver
90+
```
6791

68-
6. Access the site at: http://127.0.0.1:8000/main
92+
6. Access the site at: [http://127.0.0.1:8000/core](http://127.0.0.1:8000/core)
6993

7094
---
7195

7296
## Usage
7397

74-
- Navigate to /main for the index page.
75-
- If unauthenticated, you will be redirected to /login.
76-
- Register new users at /register, which logs in users immediately.
77-
- Logout via /logout.
78-
79-
Note: Full session management and advanced user session features are planned for future development.
98+
- Visit `/core` for the landing page with links to registration, login, and site sections.
99+
- Registration allows users to opt-in to the mailing list.
100+
- Users receive a verification email; clicking the link completes registration.
101+
- Login uses a **magic link** sent to the registered email—no password required.
102+
- Templates currently provide basic structure and forms; frontend enhancements will be added in future updates.
103+
- Email testing can be done via Django console backend or a configured SMTP server.
80104

81105
---
82106

83107
## Future Development
84108

85-
- Implement advanced session management (remember me, session expiration, etc.)
86-
- Build interactive portfolio pages with dynamic content
87-
- Add frontend enhancements using modern styling or React components
88-
- Include analytics and project tracking for portfolio items
109+
- Expand frontend with **Tailwind CSS or React** for interactive, polished UI
110+
- Implement **comment and like system** for portfolio projects
111+
- Add **user dashboards and profiles** for logged-in users
112+
- Enhance session management (session expiration, "remember me")
113+
- Integrate analytics for project interactions and views
114+
- Implement real mailing list integration (Mailchimp, SendGrid, etc.)
115+
- Add additional backend features for a fully dynamic portfolio experience
89116

90117
---
91118

92119
## License
93120

94-
This project is open-source and available under the MIT License.
121+
This project is open-source and available under the **MIT License**.

0 commit comments

Comments
 (0)