Прошу помощи в подборе технологий: на чём оптимально сделать, чтобы было меньше подводных камней?
С помощью тех технологий, которые ты хорошо знаешь.
Никаких запредельных нагрузок тут нет ни по количеству данных, ни по вычислениям.
В теории можно даже всю работу с данными повесть на фронт.
Если ничего не знаешь - ну щито поделать, значит никакой ответ тебе тут не поможет.
Предполагаю такую схему работы сайта: человек заходит на сайт, выбирает требующиеся параметры: для чего компьютер (игры, работа, сёрфинг), под какой монитор (full HD, 2k, 4k), ориетировочный бюджет (опционально). Нажимает "подобрать", ему выдаёт сборку, в которой объясняется "что это и для чего, как будет влиять",.
Тебе следует начать с алгоритма, как это вообще будет происходить.
Далее - тебе нужно определиться с источником данных, тк врядли ты будешь руками ходить по сайтам разных вендоров и руками заполнять таблички и гонять бенчмарки на разных конфигурациях.
Новое оборудование будет заноситься вручную.
Ну ладно.
В целом тут:
Какой-то фреймворк для фронта. Я бы посмотрел на React + Next + Typescript, тк у тебя будет и много интерактива, который сложно будет сделать на каком-нибудь jq, и при этом явно захочется хорошую индексацию поисковиками.
Какой-то фреймворк для бэкенда - я бы посмотрел на C#+ asp net core, тк:
1. Это моё болото и я его хвалю.
2. Статичная типизация тебе сильно поможет
3. Он будет шустрее чем какой-нибудь питон, что важно, тк если ты будешь с нуля подбирать оптимальную конфигурацию под бюджет - придётся перебирать какое-то количество вариантов.
Что-то для хранения данных - я бы взял постгрес тк:
1. Опять же моё болото.
2. Не mongo, тк статичная схема и реляционная модель тебе тут явно будет плюсом.
3. Не Cassandra, тк она тут будет излишней.
4. Не Oracle/mssql, тк мы тут не миллионеры, чтобы столь небольшое количество данных хранить в СУБД стоимостью в несколько тысяч долларов.
5. Не redis/elastic, тк это узкоспециализированные системы, которые для решения основной задачи тут тебе совсем не нужны.
Остальное - уже по мере поступления проблем.