A social networking API built with Go, featuring posts, comments, user profiles, and a follower system.
GoSocialX is a RESTful API for a social network platform. Users can create posts, comment on posts, follow other users, and browse their personalized feed with filtering and search capabilities.
- Language: Go 1.24
- Database: PostgreSQL 16.3 (containerized)
- Cache: Redis 6.2 (containerized)
- API Documentation: Swagger/OpenAPI
- Database Migrations: golang-migrate
- Authentication: JWT (JSON Web Tokens)
- Email Service: SendGrid / Mailtrap
- Validation: go-playground/validator
- Logging: go.uber.org/zap
- HTTP Router: go-chi/chi
- User Management: Registration, authentication, user profiles
- Posts: Create, read, update (with versioning), and delete posts
- Comments: Add comments to posts
- Following System: Follow/unfollow other users
- Feed: Personalized feed with pagination, filtering by tags, and search
- Role-Based Access Control: User, moderator, and admin roles
- Email Notifications: Welcome emails for new user registrations
- Caching: Redis-based user caching for performance
- API Documentation: Swagger UI for interactive API docs