This project serves as a learning experience, showcasing various technologies and tools. Here’s a breakdown of what I aimed to achieve and the technologies involved:
- Redis: Implemented for caching and efficient data retrieval, which enhances overall performance.
- Docker Compose & Air: Used for streamlining the development environment. Docker Compose helps manage multiple services (API server, PostgreSQL, Redis, MinIO) in a unified setup, while Air provides hot reloading for seamless development.
- S3 (MinIO): Utilized for file storage, enabling management of user-uploaded content such as profile pictures and post images.
- Testcontainers: Employed for integration testing.
This social network API encompasses the following features:
- Authorization: Secure user registration and login functionalities.
- Post Management: Create, manage, and view posts.
- Interactions: Comment on posts and like or dislike content.
- File Uploads: Handle uploads for profile pictures and images within posts.