https://github.com/harvidston/artheart
Web platform for sharing and exploring digital art — built with Django, React, Redux, and PostgreSQL.
https://github.com/harvidston/artheart
api axios-react django django-rest-framework docker postgresql python react redux rest-api styled-components
Last synced: 3 months ago
JSON representation
Web platform for sharing and exploring digital art — built with Django, React, Redux, and PostgreSQL.
- Host: GitHub
- URL: https://github.com/harvidston/artheart
- Owner: harvidston
- Created: 2025-06-07T03:28:47.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-11T20:52:40.000Z (about 1 year ago)
- Last Synced: 2025-10-29T01:47:22.546Z (8 months ago)
- Topics: api, axios-react, django, django-rest-framework, docker, postgresql, python, react, redux, rest-api, styled-components
- Language: JavaScript
- Homepage:
- Size: 57.1 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

|||
|:--:|:--:|
|||
|||
## Description
**ArtHeart** — a unique blend of social networking and e-commerce, all in one creative web platform. This project is a full-stack web application for browsing, publishing, and purchasing products, with built-in user profiles, social interaction, and e-commerce functionality.
Project includes the following key features:
- Category-based browsing.
View publications filtered by specific creative categories.
- Publication management.
Users can create, edit, and delete their own creative works.
- User authentication and registration.
Secure sign-up and login functionality for managing access and user sessions.
- Social interaction tools.
Users can leave comments and likes on publications to engage with the creative community.
- Wishlist and order processing.
Ability to create a wishlist of products and place an order.
- User subscriptions.
Option to follow favorite user profiles for updates of their latest publications.
- Publication detail view.
Access a dedicated page with full information about a selected publication.
## Technology Stack
- Django
- Django REST Framework
- Simple JWT
- React JS
- Styled components
- Redux
- Axios
- PostgreSQL
- Docker
## Project Structure
```
artheart/
├── backend/
│ ├── artists/
│ ├── orders/
│ ├── product/
│ ├── publications/
│ ├── config/
│ │ ├── asgi.py
│ │ ├── wsgi.py
│ │ ├── urls.py
│ │ └── settings/
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── dev.py
│ │ ├── prod.py
│ ├── static/
│ ├── media/
│ ├── manage.py
│ ├── requirements.txt
│ ├── .env
│ └── .env.prod
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── actions/
│ │ ├── components/
│ │ ├── constants/
│ │ ├── design_media/
│ │ ├── hooks/
│ │ ├── pages/
│ │ ├── reducers/
│ │ ├── routes/
│ │ ├── App.js
│ │ ├── index.js
│ │ └── platform.js
│ ├── package.json
│ └── package-lock.json
├── .gitignore
├── README.md
```
## Environment Configuration
[Python-decouple](https://pypi.org/project/python-decouple/) lib helps you to organize your settings so that you can change parameters without having to redeploy your app.
- `base.py` — base settings
- `dev.py` — local development
- `prod.py` — safe prod
- `.env` — file with secret local configuration values
```
SECRET_KEY=secret-dev-key
DEBUG=True
ALLOWED_HOSTS=127.0.0.1,localhost
DB_NAME=dbname
DB_USER=dbuser
DB_PASSWORD=dbpassword
DB_HOST=localhost
DB_PORT=5432
```
- `.env.prod` — similar to .env, but with production values
- `settings/__init__.py` — logic to select the necessary settings depending on the environment variable `DJANGO_ENV`
When starting the server, include the environment variable `DJANGO_ENV` with` dev` or `prod` values:
```
DJANGO_ENV=prod python manage.py runserver
```
## Installation
Follow the steps below to get started with this projects development environment.
1. Clone this repository
```
git clone https://github.com/harvidston/artheart
```
2. Navigate into backend, create and activate python virtual environment
```
cd backend
python3 -m venv venv
source venv/bin/activate
```
3. Install python dependencies
```
pip install -r requirements.txt
```
4. Create `artheart/.env` file with dev variables and values:
```
SECRET_KEY=secret-dev-key
DEBUG=True
ALLOWED_HOSTS=127.0.0.1,localhost
DB_NAME=dbname
DB_USER=dbuser
DB_PASSWORD=dbpassword
DB_HOST=localhost
DB_PORT=5432
```
5. Start Django development server with the environment variable `DJANGO_ENV`
```
DJANGO_ENV=dev python manage.py runserver
```
6. Navigate into frontend and install dependencies from `package.json`
```
cd frontend
npm install
```
7. Start React project
```
npm start
```
You're ready to develop!
## API-Documentation
Interactive API documentation is automatically generated using [drf-spectacular](https://github.com/tfranzel/drf-spectacular).
- Swagger UI: [http://localhost:8000/api/docs/swagger/](http://localhost:8000/api/docs/swagger/)
- Redoc: [http://localhost:8000/api/docs/redoc/](http://localhost:8000/api/docs/redoc/)
- OpenAPI JSON: [http://localhost:8000/api/schema/](http://localhost:8000/api/schema/)
