Code Monkey home page Code Monkey logo

kwtool's Introduction

Hi there πŸ‘‹

kwtool's People

Contributors

byhbt avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

kwtool's Issues

[Chore] Setup CI

Use Github action to build the Elixir code.

Acceptance criteria

  • When push code to the branch develop, Github action should be triggered.

[Backend] As a visitor, I can register a new account

As a visitor, I can create a new account.

Acceptance criteria

  • Create migration for user
  • Redirected to the Dashboard after the registration is finished successfully.
  • Encrypt user password before storing in database

Required fields:

  • Email: unique
  • Full name
  • Company
  • Password
  • Confirm Password

Company is an optional field.

[API] As a user, I can search report data

  • As a user, I can query all the stored search result data. For example:

Search "cheap flights" keyword which has a URL containing emirates word and has min_ads > 5.

Acceptance criteria

  • Search based on the crawl result.

[Backend] As a visitor, I can login to my account

Acceptance

When the user submits the login form, which is created in the Frontend ticket:
Case 1: If the login information is valid 🟒

  • Redirect to home page
  • Display The name of the user on the top right of NavBar
  • Display welcome message

Case 2: If the login information is NOT valid πŸ”΄

  • Stay at the login page with an error message

[Chore] Handling authentication error

Handling authentication error when

  • The session is expired.
  • Non-logged visitor try to access some required authentication routes.

Acceptance criteria

  • Redirect the user to error page.
  • Add test for the not authenticated cases.

[Frontend] As a user, I can search a imported keyword

Allow users to query all the stored data across all their uploaded keywords.

Examples of the SQL queries which users can run:

  • How many URLs contain the word β€œtechnology” in AdWords.
  • How many times a specific URL shows up in stored search results.
  • How many keywords have URLs in stored search results with 2 or more β€œ/” or 1 or more β€œ>”.

Acceptance criteria

  • Display an input for the user to enter the keyword.
  • Display search button
  • When the user enters directly on the input, it should be able to search the same behavior with a click button.

[Frontend] As a visitor, I can login to my account

As a visitor, I can log in to my account when I access /sign_in

Acceptance criteria

  1. Access /sign_in, display a form with these required fields:
  • Login title
  • Email
  • Password
  • Login button
  1. Use HTML validation on the form

[Chore] Initialize code base

Create a base code structure using the Phoenix web framework.

Acceptance criteria

  • Generate source code using mix phx.new kwtool
  • Update README content to follow the project requirement.
  • The website should be able to run locally.

[Backend] As a user, I can save my uploaded keyword file into database

Why

When users access /upload, they can upload a CSV file. After the upload form submitted:

  • Keywords in the file must be parsed and stored in the table keywords.
  • Validate extension .csv only.
  • Validate empty keywords file.

Acceptance criteria

  • Create keywords table migration.
  • Keywords in the file must be parsed and stored in the table keywords.

Validation

  • Validate file extension .csv only.
  • Validate empty keywords file.

[Backend] Parse the search result

Implement a background job for querying specific keywords.

Acceptance criteria

  • Parse the HTML result and get the following data on the Google first result page:
1. Number of AdWords advertisers in the top position.
2. The total number of AdWords advertisers on the page.
3. URLs of the AdWords advertisers in the top position.
4. Number of the non-AdWords results on the page.
5. URLs of the non-AdWords results on the page.
6. Total number of links (all of them) on the page

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.