An open API service indexing awesome lists of open source software.

https://github.com/soham7777777/wallpaperz

Wallpapers web application
https://github.com/soham7777777/wallpaperz

django htmx image-processing masonry-grid pillow redis-queue wallpapers

Last synced: 28 days ago
JSON representation

Wallpapers web application

Awesome Lists containing this project

README

          

# πŸ–ΌοΈ Wallpaperz

Welcome to **Wallpaperz** β€” a simple and powerful web app where users can explore, download, and share wallpapers for their screens.

---

## πŸ“– Introduction

Wallpaperz is a web-based application that allows users to:

- πŸ§‘β€πŸŽ¨ Upload their own wallpapers
- πŸ—‚οΈ Create and manage categories
- πŸ“₯ Download high-quality wallpapers

The project uses the **truly RESTful** API based on **[HATEOAS](https://htmx.org/essays/hateoas/)**(Hypermedia as the engine of application state) architecture. That means the frontend doesn’t need to know anything about the server's internal workings. It just follows HTML links and forms β€” like a web browser should! This makes the client fully decoupled from the server.

All communication between the frontend and backend is done using HTML, making it simple yet very effective.

---

## 🧰 Tech Stack

### πŸ’» Frontend

- ⚑ [htmx](https://htmx.org/) β€” Dynamic HTML interactions
- 🧠 [Alpine.js](https://alpinejs.dev/) β€” Reactive components
- 🎨 [Bootstrap](https://getbootstrap.com/) β€” Layout and styling
- 🌐 [Vanilla JavaScript](http://vanilla-js.com/) β€” Custom logic

### πŸ—„οΈ Backend

- 🐍 [Django](https://www.djangoproject.com/) β€” Robust [Python](https://www.python.org/) web framework
- πŸ–ΌοΈ [Pillow](https://python-pillow.org/) β€” Image processing (e.g. image compression)
- πŸ’Ύ [SQLite](https://www.sqlite.org/) - Database

---

## πŸ“Έ Screenshots

> _Coming soon!_ πŸ”§πŸ§ͺ
I am working on capturing some awesome screenshots of the app in action. Stay tuned! πŸ‘€

---

# 🐍 Django Project Setup Guide

Follow this guide to set up and run this Django project locally.

Clone the repository and go to directory:
```
git clone https://github.com/Soham7777777/Wallpaperz.git
cd Wallpaperz
```

---

## βœ… 1. (Optional but Recommended) Create a Virtual Environment

Using a virtual environment helps isolate project's dependencies.

### For Windows:
```bash
python -m venv .venv
.venv\Scripts\activate
```

### For Linux/macOS:
```bash
python3 -m venv .venv
source .venv/bin/activate
```

## πŸ“¦ 2. Install Dependencies

After activating your virtual environment, install all required packages:

```bash
pip install -r requirements.txt
```

## πŸ› οΈ 3. Create a .env File

In the root directory of project, create a file named .env.

```bash
SECRET_KEY = 'ANY RANDOM SECRET STRING'
```

## πŸ”§ 4. Apply Migrations

```bash
python manage.py migrate
```

## πŸš€ 5. Run the Development Server

Start the Django development server:

```bash
python manage.py runserver
```

Now, open your browser and go to: `http://localhost:8000`