https://github.com/7n4xt/papery
A small university project to learn how api works
https://github.com/7n4xt/papery
api design golang website
Last synced: 9 months ago
JSON representation
A small university project to learn how api works
- Host: GitHub
- URL: https://github.com/7n4xt/papery
- Owner: 7n4xt
- Created: 2024-12-10T07:54:11.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-16T15:28:51.000Z (9 months ago)
- Last Synced: 2025-03-16T16:34:07.309Z (9 months ago)
- Topics: api, design, golang, website
- Language: HTML
- Homepage:
- Size: 8.44 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Papery

A modern web application for discovering, managing, and enjoying high-quality wallpapers.
## 🌟 Overview
Papery helps users discover and organize beautiful wallpapers through an intuitive interface. Browse thousands of high-resolution images, create personalized collections, and transform your digital spaces with stunning visuals.
## ✨ Key Features
### Collections & Favorites
- Create custom collections to organize wallpapers by theme, mood, or occasion
- Quick favorite/unfavorite functionality with one-click actions
- Smart recommendations based on your favorite styles
### Premium Content Library
- Access to thousands of high-resolution wallpapers
- Regular updates with fresh content
- Support for multiple devices (desktop, tablet, TV's lol)
- Multiple resolution options for each wallpaper
### Powerful Search Engine
- Advanced filtering by resolution, orientation, color palette
- Instant search
- Custom sorting options (orientation, size, most color)
## 🛠️ Technology Stack
### Frontend
- **HTML5** - Semantic structure and accessibility
- **CSS3** - Custom animations and responsive layouts
- **JavaScript** - Interactive elements and dynamic content loading
### Backend
- **GoLang** - High-performance API server and image processing
- **RESTful API** - Clean architecture for seamless frontend-backend communication
### Data Storage
- **JSON** - Efficient metadata storage and retrieval
## 📋 Prerequisites
- Git ([Download](https://git-scm.com/downloads))
- Go 1.23.4 or higher ([Download](https://go.dev/dl/))
- Web browser with JavaScript enabled
## 🚀 Getting Started
### Installation
1. Clone the repository
```bash
git clone https://github.com/YourUsername/Papery.git
cd Papery
```
2. Install dependencies
```bash
go mod download
```
3. Build and run the application
```bash
go build
./papery
```
4. Access in browser
```
http://localhost:8080
```
## 🧩 Project Structure
```
papery/
├── main.go # Application entry point
├── go.mod # Go module file
├── README.md # Project documentation
│
├── assets/ # Static assets
│ ├── CSS/
│ │ ├── universal.css # Universal styles
│ │ ├── detailsPage.css # Details page styles
│ │ ├── home.css # Home page styles
│ │ ├── search.css # Search page styles
│ │ └── favorite.css # Favorites page styles
│ ├── Fonts/
│ │ └── BrightMarching-Regular.otf # Custom font
│ ├── Icons/ # Application icons
│ └── js/
│ └── favorites.js # Favorites functionality
│
├── controllers/ # MVC Controllers
│ ├── about.controller.go # About page controller
│ ├── details.controller.go # Details page controller
│ ├── favorite.controller.go # Favorites page controller
│ ├── home.controller.go # Home page controller
│ └── search.controller.go # Search page controller
│
├── data/ # Data storage
│ └── favorites.json # User favorites data
│
├── routes/ # Routing configuration
│ ├── about.route.go # About page routes
│ ├── details.route.go # Details page routes
│ ├── favorite.route.go # Favorites page routes
│ ├── home.route.go # Home page routes
│ ├── main.routes.go # Main routing setup
│ └── search.route.go # Search page routes
│
├── services/ # Business logic
│ ├── details.service.go # Photo details service
│ ├── favorites.service.go # Favorites management
│ ├── home.services.go # Home page content
│ └── search.service.go # Search functionality
│
└── templates/ # HTML templates
├── about.html # About page template
├── details.html # Details page template
├── favorite.html # Favorites page template
├── home.html # Home page template
├── search.html # Search page template
└── templates.go # Template handler
```
## 📡 Endpoints
### Home
- GET / - Home page displaying a collection of wallpapers.
### Search
- GET /search - Search page with query parameters for filtering wallpapers.
### Details
- GET /details/{id} - Details page for a specific wallpaper.
### Favorites
- GET /favorite - Favorites page displaying user's favorite wallpapers.
- POST /api/favorites/add - Add a wallpaper to favorites.
- DELETE /api/favorites/remove - Remove a wallpaper from favorites.
### About
- GET /about - About page with information about the application.
## 🤝 Author
ESUGHI Abdulmalek
## 🙏 Acknowledgments
- All the amazing photographers who provide beautiful wallpapers
- The open-source community for their invaluable tools and libraries,
# Merci beaucoup!