Git Product home page Git Product logo

codefund's Issues

Ad Creative Embed Script

API endpoints will be provided. The code needs to do the following:

  • Provide a script URL that can be placed on a website
  • When the script loads (via browser), an API call is made to the impressions endpoint with browser data
  • The html (returned in the payload) will be rendered .. ideally not in iframe, but in the actual HTML inline where the script exists
  • If the link is clicked, the user is redirected to the click endpoint (this is likely handled already in the payload)

Extra credit (tip):

  • Provide a way for developers to specify in the script (or in js) some attributes of the ad to display (for example, theme (light/dark), width, height, etc.

Create a new Ad Creative

As a sponsor, I can add a new ad creative.

This includes:

  • Budgets (daily, monthly, max)
  • Min/Max CPC
  • Messaging
  • Colors
  • Image?

Edit an existing Ad Creative

As a sponsor, I can edit an existing ad creative.

This includes:

  • Budgets (daily, monthly, max)
  • Min/Max CPC
  • Messaging
  • Colors
  • Image?

Masquerade as user

As an admin, I can masquerade as a user. When I view the user list, I can click a button that will log me in as another user. There will be a link at the top to "Return to Admin", which will return me back to my original logged in user and place me back on the user list.

List Users

As an admin, I want to be able to see a list of all the user accounts. This list should include name, email and # of properties.

Enhance property form

Include:

  • Weekly Impressions
  • Weekly Unique Impressions
  • Audience Categories
  • Website Type (app, docs, etc)

add a linter, and fix the few linting errors

credo is the prefered elixir linter. Developing an elixir project with credo is easier than without it, and it helps enforce a consistent style across a project.

There are even extensions for popular code editors to display the linting errors during development:

In addition, you can add credo linting as part of the travis CI

Q1 Goals

Marketing Pages

Homepage content

  • How it works
  • Testimonials
  • Ethical Advertising
  • Contact
  • Live stats (#32)
  • FAQ
  • Newsletter integration (mailchimp)
  • Add better messaging UX (for flash messages)

Login

  • Email
  • GitHub (#28)
  • GitLab (#30)
  • BitBucket (#29)

Register

  • Email (#25)
  • GitHub
  • GitLab
  • BitBucket

Manage profile

  • View (#24)
  • Edit (#23)
  • Manage payment information
  • Legal agreement
  • Add funds (#22)

Property management

  • Add new website
  • Update existing website
  • Code for adding to property location (test / live) (#31)

Dashboard

  • Impressions (#15)
  • Clicks (#14)
  • Earnings (#27)
  • Distribution History (#26)

Funding History

  • List (#21)
  • View Receipt (#20)

Creative Management

  • Create Ad (#19)
  • Update Ad (#18)

Property search

  • List all properties in paginated table (#17)
  • Select projects to sponsor (#16)

Administration

  • Ability to accept crypto as form of funding from sponsors (#13)
  • Ability to distribute funds as crypt to developers (#12)
  • Integrate Rollbar (#11)

Edit Profile

I can edit my own profile. This includes:

  • My name, email, address, contact info
  • My payment method (PayPal or ETH)
  • Paypal address or ETH address

Add funding in the form of ETH

As a sponsor, I can fund my account by sending ETH through the platform.

Tasks:

  • Create form to enter amount and calculate gas price and current pricing
  • Hook into geth in order to capture the transfer
  • Display payment confirmation
  • Notify sponsor when transaction has completed

View the embed code for properties

As a developer, I can get the embed code to put on my website. This code will have a test flag to indicate whether the impression/click counts.

Add date-range filtering to the dashboard

On the dashboard, I want to be able to filter the data by date range. The date range selector should be above all charts and graphs in order to be applied to all data on that page.

When the dates change, the charts should automatically update, reflecting the new range.

Subtract ad spend from budgets

When a payable click occurs, the app should:

  • Display the remaining budget for the campaign
  • Discontinue displaying the ad if the budget runs out for day/month/total
  • Switches to next advertiser if previous advertiser budget is exhausted

Move Schemas to their contexts

Enhancement

Phoenix 1.3 presents us with a powerful option (Contexts) to use when modelling our application, In lieu of separating a model of your application, we would use Contexts to arrange our code and share the functionality.
More on this see this video https://www.youtube.com/watch?v=tMO28ar0lW8

Work Proposed

Move schemas from lib/schemas to their respective contexts

Done

When we can agree on how to arrange the code

Set up fallback campaign to be set via ENV variable

When budgets run out on normal campaigns, the next campaign loaded should be loaded from an ENV variable.

e.g. FALLBACK_CAMPAIGN_ID=____

This would modify the logic in the ad_serve_controller#details by updating the default to be this campaign (instead of what is stubbed)

Enable distribution of ETH for payable clicks

As an administrator, I can distribute funds as crypto-currency to developers.

Tasks

  • Calculating amount owed by converting prices of USD -> ETH
  • Marking payable clicks as distributed and linked to a distribution record

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.