Skip to content

Instantly share code, notes, and snippets.

@imevro
Last active February 7, 2021 05:52
Show Gist options
  • Save imevro/e7dd8310c1f781e161d60d948cb06ca6 to your computer and use it in GitHub Desktop.
Save imevro/e7dd8310c1f781e161d60d948cb06ca6 to your computer and use it in GitHub Desktop.
Тестовое задание в https://gotovo.ru

Тестовое задание в gotovo.ru

Кстати, мы активно нанимаем! Ищем фронтэнд-разработчиков, подробнее тут.

Пока не ищем!

Стек

Файрбейз (Firestore, Auth, без firebase-ui), Тайпскрипт, Реакт, Лоудэш, Аплоадкейр

Задание

Используя Файрбейз и его SDK, вывести в реалтайме список блюд как на сайте gotovo.ru. Разделение по категориям нужно.

Добавить mobile-first форму добавления и редактирования блюда, добавлять и обновлять может только залогиненный (см. Firestore Rules).

Задеплоить на netlify.

Вводные

В Firestore использовать две коллекции: meals, categories. Типы приложены в этом гисте.

import fb from 'firebase';
type FieldRef = fb.firestore.DocumentReference;
export interface Category {
title: string;
order: number;
}
export enum MealKind {
drink = 'drink',
hotDrink = 'hotDrink',
soup = 'soup',
salad = 'salad',
hot = 'hot',
breakfast = 'breakfast',
sauce = 'sauce',
pastry = 'pastry',
garnish = 'garnish',
}
export interface MealCategory {
ref: FieldRef;
order?: number;
}
export type Meal = Partial<{
id: string;
title: string;
categories: MealCategory[];
measure: Partial<{ unit: string; value: number }>;
price: number;
emoji: string;
uploadcareId: string;
kind: MealKind;
}>;
@imevro
Copy link
Author

imevro commented Jul 31, 2020

Мы используем виджет аплоадкейра, после загрузки фото берём его айдишник и кладём в файрбейз в поле uploadcareId

Ключ для аплоадкейра 30506db15e8554c1cad3

@imevro
Copy link
Author

imevro commented Jul 31, 2020

Категории это "ужин", "обед", "завтрак", мы их храним в categories в формате описанном в types.ts@L5-L14, а в блюде линкуем через types.ts@L-54.

На фронтэнде когда получаем список блюд, раскладываем по категориям и рендерим.

@imevro
Copy link
Author

imevro commented Jul 31, 2020

Авторизацию лучше всего сделать по номеру телефона, она проще всего

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment