Skip to content

A simple social media website with database, go backend and Vue frontend

License

Notifications You must be signed in to change notification settings

SchulzKilian/WASA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PhotoShare Social Network

A modern social media platform for sharing photos and connecting with others. Built with Go backend and Vue.js frontend.

🌟 Features

  • πŸ“Έ Photo sharing and discovery
  • πŸ‘€ User profiles and following system
  • ❀️ Like and interact with posts
  • πŸ’¬ Comment on shared content
  • πŸ” Explore feed with trending photos
  • πŸ“± Responsive design for mobile and desktop

πŸ”§ Tech Stack

Backend

  • Go with modular architecture
  • RESTful API design
  • SQLite database
  • JWT authentication

Frontend

  • Vue.js with Bootstrap
  • Feather icons
  • Modern dashboard interface
  • NPM build system

πŸš€ Getting Started

Prerequisites

  • Go 1.x
  • Node.js (LTS version)
  • NPM

Backend Setup

Clone repository

git clone [your-repo-url]

Build and run backend

go build ./cmd/webapi/ ./webapi

Frontend Development

Start NPM container

./open-npm.sh

Inside container:

npm install npm run dev

Production Build

Build frontend

./open-npm.sh npm run build-embed exit

Build backend with UI

go build -tags webui ./cmd/webapi/

πŸ“ Project Structure

β”œβ”€β”€ cmd/ β”‚ β”œβ”€β”€ webapi/ # Main web server β”‚ └── healthcheck/ # Health monitoring β”œβ”€β”€ service/ β”‚ β”œβ”€β”€ api/ # API implementation β”‚ └── globaltime/ # Time utilities β”œβ”€β”€ webui/ # Vue.js frontend └── doc/ # API documentation

πŸ› οΈ Development

API Documentation

  • OpenAPI specification in doc/api.yaml
  • RESTful endpoints for user and photo operations
  • Comprehensive authentication system

Frontend Features

  • Intuitive photo upload interface
  • Interactive feed with infinite scroll
  • User profile customization
  • Real-time notifications
  • Mobile-first responsive design

πŸ”’ Security Features

  • JWT-based authentication
  • Secure file handling
  • Input validation
  • CORS protection

πŸ“Š Core Functionality

  • Photo upload and management
  • User following system
  • Activity feed
  • Like and comment system
  • User profiles
  • Content discovery

πŸ§ͺ Testing

Run backend tests

go test ./...

Run frontend tests

npm run test

πŸ’» Development Commands

Backend

Run development server

go run ./cmd/webapi/

Run with specific config

go run ./cmd/webapi/ -config path/to/config.yaml

Frontend

Development mode

npm run dev

Production build

npm run build-embed

Preview production build

npm run preview

πŸ“ Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

πŸ› Known Issues

For Apple M1/M2 users: If encountering esbuild issues, run: ./open-npm.sh npm install exit

πŸ“„ License

See LICENSE file for details.

About

A simple social media website with database, go backend and Vue frontend

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published