Olx clone, with Golang, PostgreSQL, Redis, docker, AWS S3, AWS SES, AWS SQS to achieve blazing performance, with features like product, user, seller, review, report-product, favorite and many more, this product compress of 25+ working APIs, also health API.
- Olx clone with 25+ working APIs
- For scale we used AWS SES for email service
- For scale we used AWS S3 for file storage
- Performance DB we used PostgresQL
- Dockerized for easy deployment
Table bellow shows the obligatory environment variables for mariadb container. You should set them based on what was also set for backend container.
Environment variable | Default value | Optional |
---|---|---|
STAGE | "" | YES |
DB_HOST | http://127.0.0.1 | YES |
DB_PORT | 5432 | YES |
DB_USER | user | YES |
DB_PASSWORD | postgres | YES |
DB_NAME | olx-clone | YES |
REDIS_HOST | NO |
|
REDIS_PORT | NO |
|
REDIS_USER | NO |
|
REDIS_PASSWORD | NO |
|
SENTRY_DSN | NO |
|
DD_AGENT_HOST | NO |
|
S3_BUCKET | NO |
First of all, correctly configure the Golang development environment on your machine, see https://go.dev/doc/install
- Clone this repository:
$ git clone https://github.com/swarajkumarsingh/olx-clone
- Enter in directory:
$ cd olx-clone
- For install dependencies(optional):
$ make install
- Run the app:
$ ./run.sh
Column Name | Data Type | Description |
---|---|---|
id | INT (Primary Key) | Unique identifier for each user |
username | VARCHAR(255) | Unique identifier for each user |
fullname | VARCHAR(255) | User's fullname |
avatar | TEXT | User's profile picture |
VARCHAR(255) | User's email address | |
password | VARCHAR(255) | Securely hashed password |
location | TEXT | User's profile picture |
coordinates | TEXT | User's profile picture |
otp | TEXT | User's profile picture |
otp_expiration | TIMESTAMP | OTP timestamp |
created_at | TIMESTAMP | Timestamp of account creation |
updated_at | TIMESTAMP | Timestamp of account modification |
Column Name | Data Type | Description |
---|---|---|
id | INT (Primary Key) | Unique identifier for each seller |
username | VARCHAR(255) | Unique identifier for each seller |
fullname | VARCHAR(255) | Seller's fullname |
description | TEXT | Seller description |
is_verified | BOOLEAN | Checks if the seller is verified |
avatar | TEXT | Seller's profile picture |
phone | VARCHAR(12) | Seller's phone |
VARCHAR(100) | Seller's email address | |
password | VARCHAR(255) | Securely hashed password |
city | VARCHAR(50) | Seller's city |
state | VARCHAR(50) | Seller's state |
country | VARCHAR(50) | Seller's country |
zip_code | VARCHAR(50) | Seller's zip-code |
location | TEXT | Seller's location |
coordinates | TEXT | Seller's coordinates |
rating | TEXT | Seller's rating |
account_status | TEXT | Seller's account_status |
otp | TEXT | Seller's otp |
otp_expiration | TIMESTAMP | OTP timestamp |
created_at | TIMESTAMP | Timestamp of account creation |
Column Name | Data Type | Description |
---|---|---|
id | INT (Primary Key) | Unique identifier for each seller |
title | VARCHAR(255) | Title's for the product |
description | TEXT | Seller description |
location | TEXT | Seller's location |
coordinates | TEXT | Seller's coordinates |
views | BIGINT | Views count |
price | VARCHAR(100) | Views count |
seller_id | ID | Seller's ID |
created_at | TIMESTAMP | Timestamp of account creation |
Column Name | Data Type | Description |
---|---|---|
id | ID (Primary Key) | Unique identifier for each seller |
user_id | ID | User's ID |
product_id | ID | Products's ID |
rating | TEXT | Products's rating |
comment | TEXT | Products's comment |
created_at | TIMESTAMP | Timestamp of account creation |
Column Name | Data Type | Description |
---|---|---|
id | ID (Primary Key) | Unique identifier for each seller |
user_id | ID | User's ID |
product_id | ID | Products's ID |
message | VARCHAR(100) | Report message |
created_at | TIMESTAMP | Timestamp of account creation |
Column Name | Data Type | Description |
---|---|---|
id | ID (Primary Key) | Unique identifier for each seller |
user_id | ID | User's ID |
product_id | ID | Products's ID |
created_at | TIMESTAMP | Timestamp of account creation |
Column Name | Data Type | Description |
---|---|---|
id | ID (Primary Key) | Unique identifier for each seller |
user_id | ID | User's ID |
product_id | ID | Products's ID |
created_at | TIMESTAMP | Timestamp of account creation |
Contributions are welcome! If you'd like to contribute to this project, please follow these guidelines:
1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Make your changes and test thoroughly.
4. Commit your changes with clear commit messages.
5. Create a pull request against the main branch.
This application is a personal project built with educational and learning purposes in mind. It is neither affiliated nor endorsed by Amazon in any way. While the app features product details and images inspired by Amazon, these are solely for demonstration purposes and may not represent actual products. All rights to these elements belong to their respective owners. We are using them for educational purposes only and have no intention of commercial exploitation.
Additionally, be aware that any attempts to place orders within this prototype are purely for testing purposes and will not result in actual product deliveries or charges in the real-world. This environment is designated exclusively for simulation and development purposes
You can check out the full license here
This project is licensed under the terms of the MIT license