Welcome to the Dating App Backend project! This repository contains the backend system for a simple Dating App, similar to Tinder or Bumble. The goal of this project is to evaluate technical skills and the ability to design a backend system that meets the requirements of a dating application, as part of the technical assessment for the company.
In this technical test, you are required to design and implement the backend system for the Dating App, considering the following basic functionalities:
-
Sign up & Login to the App:
- Implement user authentication and authorization.
- Users should be able to sign up with a new account and log in with existing credentials.
-
User Profile Interaction:
- Users can view other dating profiles.
- Users can swipe left (pass) or swipe right (like) on up to 10 different dating profiles in total (pass + like) within a single day.
- The same profiles should not appear twice in the same day.
-
Premium Packages:
- Implement a premium package system.
- Users can purchase premium packages that unlock one premium feature of your choosing.
- Examples of premium features include:
- No swipe quota for the user.
- A verified label for the user.
This project follows the Clean Architecture pattern, where the code structure is well-organized into clear layers, including Entities, Use Cases and Interface Adapters.Complete references can be found at bxcodec/go-clean-arch.
Follow these steps to get a copy of the project up and running on your local machine for development and testing purposes.
Database will auto migrate when services run variable environent can be edit at .env file
docker and docker-compose must be installed
git clone git@github.com:akmalulginan/carjod-be.git
$ docker-compose build
$ docker-compose up -d
$ go test ./...
Explore and test the Dating App Backend API using Postman. The provided Postman collection offers a detailed overview of endpoints, enabling you to interact with and understand the backend system.
Feel free to experiment with different requests, parameters, and payloads for a hands-on experience. Check the Postman collection's documentation for guidance on API functionalities.
For any questions or assistance, refer to the API documentation in Postman or reach out to the project contributors.
Happy exploring!