Query Pulse is tool designed to assist in keyword research by performing data scraping.
- User Authentication: Signup and Login.
- CSV Upload: Users can upload a CSV file containing search terms.
- Keyword Search: Search uploaded keywords and view metrics for each
- Data Extraction: Gathers result counts, AdWord counts, and link counts per keyword.
- Graphile Worker: Utilizes a PostgreSQL-backed job queue to process scraping tasks efficiently. So consumers for data scraping can be scaled independently and on-demand.
- Frontend: Angular 16
- Backend: Node.js 18 & Express
- Database: PostgreSQL
- Job Queue: Graphile Worker
To set up the backend locally using Docker:
-
Ensure Docker and Docker Compose are installed on your system.
-
Create a
.env
file in the backend directory(/api) with the following keys:DATABASE_USER=youruser DATABASE_PASSWORD=yourpassword DATABASE_URL=postgresql://youruser:yourpassword@localhost:5432/yourdb JWT_SECRET=yoursecret
Replace the placeholders with your actual database credentials and desired JWT secret.
- Run the following command to start the backend services:
docker-compose up --build
This will set up the Node.js API server, Graphile Queue worker and PostgreSQL database as Docker services.
To run the frontend locally:
-
Ensure you have Node.js and the Angular CLI installed.
-
Navigate to the frontend directory.
-
Run npm install to install dependencies.
-
Start the development server using:
ng serve
The Angular application will be available at http://localhost:4200.
- The file format for upload is
.csv
. The file can have upto 100 rows with a column with header as "Keyword"