Skip to content

Create custom Scholarship Collections #28

Description

@ademidun

Different people have reached out to us asking for help finding scholarships specifically for their situation. We can use the browser extension to make it easy to quickly create scholarships for specific users.

See: (Scholarships for Naomi or Atila’s scholarship TikToks.

The browser extension should make it easy to save scholarships on the internet and add it to a collection. This feature is similar to the Add to Collection Feature in Atila's Atlas Extension (code, chrome store).

Related Pull Requests

Diagram
Screen Shot 2022-07-29 at 12 09 10 PM

  1. Create multiple tabs: Add Save, Search, Settings tab
  2. Login through settings tab
  3. Save token to local storage
  4. Authenticate each subsequent request with JWT
  5. Save Scholarships found on the Internet
  6. Search for existing scholarships
  7. Add scholarships in previous two steps to collection

This will use a lot of the code in Atila Atlas. The goal is to eventually combine these two extensions into one.

[ show demo of how it works on Atlas]

Grace: Saving and searching scholarships -> Adding to Collection

Tomiwa: Multiple tabs
Hadi: Logging in -> Authenticating requests -> Making backend able to accept requests from Chrome

Logging In

  1. The login page will be publicly accessible and must remove CORS restrictions for the login endpoint.
  2. User sends username and password a token is returned, just like in atila-client-web-app
  3. Each subsequent request is authenticated by theJTW ${token}

Saving Scholarship

  1. When a user finds a scholarship on the internet, they can simply click on save and all the metadata of that scholarship will be auto-filled, user can add missing details and it will be added to Atila
  2. The user then has the option of adding it to a specific collection (similar to how Pocket works [show demo])

Searching Scholarship

  1. The user can search existing scholarships on Atila.
  2. Add a /search endpoint to atila-django
  3. Use the same logic used in atlas search

Saving to Collection

  1. Collection Model should be updated so that a CollectionItem can either beContent or Scholarship

Instructions

  1. Clone, build and unpack the two extensions: https://github.com/ademidun/atila-scholarship-helper-extension and https://github.com/atilatech/browser-extension (make sure not to confuse them!)
  2. Create a new branch and create 3 separate tabs
  3. Any requests to atila-django API must have certain headers set:
    https://github.com/atilatech/browser-extension/blob/498257100535919f6b731efb0dcf30b08cc39c5b/src/services/AtlasAPI.ts#L18
  4. Add Authorization to list of allowed headers: https://github.com/ademidun/atila-django/pull/410/commits/1b9a7cc0081afa1c61ea6652ecbb835124e49999#diff-d8def684c9a77cfaaa19b4c1762a220d5978a030144169de2a502eedd110651bR189
  5. If you get issues with sending requests to atila api from the broswer extension see these commits in PR: https://github.com/ademidun/atila-django/pull/410
    1. https://github.com/ademidun/atila-django/pull/410/commits/48006b563e3d3411d5e3c94b9debb74d6a035a72
    2. All these requests are from a browser extension to Atila's API so you can use it as an example: https://github.com/atilatech/browser-extension/blob/master/src/services/AtlasAPI.ts#L24

Endpoints

The following endpoints on atila-django would need to be supported without CORS restrictions

  1. Login
  2. Save Scholarships (already done)
  3. Save Scholarship to User Profile
  4. Create a new Collection
  5. Save Scholarship to a collection

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions