Features โข Requirements โข Development โข About โข Help โข Community
see table of content
This is an ecommerce API designed to be useful for stores owners, as it allows some messaging automation, getting order information from Aliexpress and Shopify, among other things.
ย ย ย โ๏ธ Whatsapp bot automation routes;
ย ย ย โ๏ธ Telegram bot automation routes;
ย ย ย โ๏ธ Get order information from Aliexpress;
ย ย ย โ๏ธ Get order information from Shopify;
ย ย ย โ๏ธ Get order information from Brazil post office, called Correios.
In order to use this project in your computer, you need to have the following items:
- npm: To install the package. Npm is installed alongside nodejs;
- nodejs: To actually run the package.
If you want to make changes to the source code, it is recommended to also install the following items:
- git: To work with version controlling;
- vscode: Useful for editing the code. You can choose a similar editor as you wish.
To setup this project in your computer, download it in this link or run the following commands:
# Clone this repository
$ git clone https://github.com/lucasvtiradentes/ecommerce-stores-api
# Go into the repository
$ cd ecommerce-stores-api
After download it, go to the project folder and run these commands:
# Install dependencies
$ npm install
# Run the typescript code in development mode
$ npm run dev
If you want to contribute to the project, after you make the necessary changes, run these commands to check if everything is working fine:
# Compiles the typescript code into javascript
$ npm run build
# Run the compiled code in production mode
$ npm run start
The project has the following folder strucure:
|-- .github # contains CI-CD workflows, github templates, DOCS and images.
|-- build # (dev only) build folder
|-- node_modules # (dev only) dependencies folder
|-- scripts # scripts folder
|-- src # application source code
and the filles present in root folder are the following:
.editorconfig # editorconfig settings file
.env # environmental variables
.env.example # environmental variables example
.gitignore # git ignored items
LICENSE # project license
package.json # project specifications
tsconfig.json # typescript settings file
This project uses the following thechnologies:
And also this project used the following packages:
# DEPENDENCIES
- @adiwajshing/baileys # whatsapp api wrapper.
- @wmakeev/base64encode # deal with base64 codification.
- axios # deal with https request.
- bull # related to multi-threading.
- cli-color # prits colorful console messages.
- cluster # fork process to run specific tasks.
- cors # specify who can use the api routes.
- dotenv # read all .env variables at runtime.
- express # create backend servers.
- mongodb # mongodb database package.
- mongoose # ORM to deal with mongodb.
- node-telegram-bot-api # telegram api wrapper package.
- pino # logger library.
- puppeteer-extra # puppeteer with some cool plugins.
- puppeteer-extra-plugin-stealth # plugin for stealth navigation at puppeteer.
- qrcode # deal with qrcode operations.
- throng # related to multi-threading.
- uuid # generate random strings
# DEV DEPENDENCIES
- npm-run-all # run multiple scripts simultaneously.
- rimraf # cross-platform delete folder utility.
- ts-node # run typescript code in development.
- ts-node-dev # restart the typescript code after changes.
- typescript # typescript main package.
This project uses the best of two main conventions to commit messages validation:
- conventional commits: it's powerfull messages structure;
- gitmoji: it's beutiful and visual way to display commits.
So a typically valid commit message has this pattern:
๐ง config: add lint-staged to the project (#2)
Also, in order to have this integration working correctly, I buld a script that we can specify only allowed types and it take care to update both commitizen and commitlint settings.
You can check our most common questions and awnsers in this link.
The first point of call should be our Github discussions. Ask your questions about bugs or specific use cases, and someone from the will respond. Or, if you prefer, open an issue on our GitHub repo.
Boilermanager is distributed under the terms of the MIT License Version 2.0. A complete version of the license is available in the LICENSE file in this repository. Any contribution made to this project will be licensed under the MIT License Version 2.0.
If you are a typescript developer, we would kind and happy accept your help:
- The best way to get started is to select any issue from the
good-first-issue
label; - If you would like to contribute, please review our Contributing Guide for all relevant details.
Another ways to positivily impact this project is to:
- โญ Star this repository: my goal is to impact the maximum number of developers around the world;
- โ๏ธ Fix english mistakes I might have made in this project, may it be in the DOCS or even in the code (I'm a portuguese natural speaker);
- โค๏ธ Say thanks: kind words have a huge impact in anyone's life;
- ๐ฐ Donate: if you want to support my work even more, consider make a small donation. I would be really happy!
Any questions or suggestions? You are welcome to discuss it on:
This project is an idea of @lucasvtiradentes to return some value to the world
after years of consuming a lot of useful tools provided by this amazing open source community
.