waferbaby / usesthis

A nerdy little interview website, asking people from all walks of life what they use to get the job done.
http://usesthis.com/
MIT License
579 stars 119 forks source link

Gear/Software search? #96

Closed pablosproject closed 4 years ago

pablosproject commented 4 years ago

Hi, thanks for the website, it's amazing.

I am always looking through the list of gear when I'm searching for a tool or just wandering around, and it's really useful for me.

I was thinking about how I can contribute by adding a search page, in which the user can search in all the gears for a given keyword. I checked the APIs https://usesthis.com/api/v2/hardware/01v96i/ and https://usesthis.com/api/v2/hardware/01v96i/ and looking through the api.rb file, and it seems like you are manually building the entire list and r of gears and relationship with an interview.

Search API

I'm thinking 2 approaches:

  1. We can load all the JSON in a MongoDB database, and search through that. It'll help with performance and pagination. I can put a little JS application in the middle that generates the search API.
  2. We can use the list you load in the api.rb files, and implement the search there.

Search Page

After that, I should somehow create the page on the website for searching through the gears, calling the search API. Not 100% sure if that is possible, as it seems a static generate website.

What do you think about the idea? You think is technically doable?

waferbaby commented 4 years ago

@pablosproject Aw, glad you like the site!

I’ve been thinking about adding my own search for the whole site (probably an ElasticSearch instance fronted by a tiny Sinatra app, maybe?). I’d love to surface the gear stuff, too, but before that I’d want to make actual pages for the gear. Which I.. plan to do.. eventually? 😅

pablosproject commented 4 years ago

Hey! Thanks for your reply. If that's ok for you, I will try to contribute. I know both ES and Mongo, and for the amount of document we have I think ES is a little overkilling, mongo will do just fine in searching in name and descriptions of gear and software.

One of the point is that I don't 100% understand how all the JSONs are generated, as I don't know the static site generator, and I'm almost noob with ruby.

What if I start with a basic docker image, loading the JSONs in a mongo and put a little express-powered search API? Would that work for you?

waferbaby commented 4 years ago

Feel free to try making a prototype! I don’t think I’m ready to build the gear pages yet, and I wouldn’t want to build a full search until I had that all set up. But I appreciate the enthusiasm!