test.mov
Front end can be run by first cd
to the fe
folder then run npm dev
Back end can be run by go build cmd/main.go && ./main
the front end is in fe
folder. I chose to make this sub folder for the front-end, because there is not enough time to split front-end to another repo.
the backend is in this folder, and follows the structure outlined in golang project layout
- User authentication Sign in & sign up
- Upload a CSV file contains 1 to 100 keywords
- For each keywords search it on Google, then stores the followings information of the first result page.
- Total number of AdWords advertisers on the page
- Total number of links on the page
- HTMLM code of the first page
- Numbers of search results for this keyword
- See list of uploaded keyword, and search result information.
- Search across reports
- Sign in & sign up
- Upload file
- View list keywords
- View search results for each keyword
- Search across reports
- Authentication
POST /api/user/signin
user sign inPOST /api/user/signup
user sign up
POST /api/keyword/upload
upload a list of keywords for searchingGET /api/keyword?id=[id]
get the search result for this keywords
- Upload file
- DB Storage (Postgres)
- Mock in memory
- Scrape (Google)
- Keyword source (DB Storage)
- Scraping strategy (Rate limits)
- Keyword scraper
- Search handler
- Result parser
- Result page parser
- First page parser
- Result storage (DB Storage)
- CURD stuffs for keywords