Skip to content

psumaps/mini-app

Repository files navigation

PSUMaps

Репозиторий содержит код интерфейса приложения «PSUMaps – интерактивный университет в кармане»


License Contributors

Проект разрабатывается при поддержке

Центр молодёжной политики ПГНИУ

Содержание

Структура

Приложение разбито на три части:

  • web: mini-app
  • native: приложение для android
  • shared: весь независимый от платформы код, т.е.: компоненты, стили, истории storybook

Стек

Общий стэк состоит из:

Для упрощения работы:

Запуск

Запускать из корня:

  • npm run storybook: storybook
  • npm run web: запустит параллельно dev и tailwind:watch скрипты web модуля
  • npm run native: запустит start скрипт native модуля

Web

Запускать из web/

  • npm run dev
  • npm run preview
  • npm run build: сборка

Native (n/a)

Запускать из native/

  • npm start
  • npx expo start
  • npx expo run:android: сборка, требует android SDK и JDK

Рабочий процесс

Общий код находится в папке shared. Компоненты помещаются в папку shared/components, для каждого компонента создается история (shared/stories/<componentName>.stories.tsx). Истории помогают лучше и проще тестировать и понимать компоненты. Для всех значимых вариантов компонента должен быть создан отдельный шаблон. Пример:

import type { Meta, StoryObj } from '@storybook/react';
import Input from '../components/controls/input';

const meta: Meta<typeof Input> = {
  title: 'Controls/Input',
  component: Input,
  tags: ['autodocs'],
  parameters: {
    // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout
    layout: 'centered',
  },
};

export default meta;
type Story = StoryObj<typeof meta>;

export const Default: Story = {
  args: {
    label: 'Имя',
    name: 'firstName',
    type: 'text',
  },
};

export const Email: Story = {
  args: {
    label: 'Почта',
    name: 'email',
    type: 'email',
  },
};

export const Password: Story = {
  args: {
    label: 'Пароль',
    name: 'password',
    type: 'password',
  },
};

Код, специфичный для конкретного модуля, помещается в папку модуля. Специфичный код - это такой, который использует библиотеки, доступные только на одной из платформ.

Оформление изменений

Правила оформления изменений кода в основном репозитории

Ветки

Ветки должны иметь название, соответствующее своему содержанию, и префикс:

Название ветки Значение ветки Пример ветки
fix-* Исправление баг в функционале fix-auth
feat-* Добавление новой возможности feat-auth
refactor-* Рефакторинг существующего кода refactor-auth

Коммиты

Имя коммита должно иметь префикс в зависимости от внесенных изменений, а также указывать на измененную часть кода

Название ветки Значение ветки Пример ветки
fix: * Исправление бага в функционале fix: submit button in map screen
feat: * Добавление новой возможности feat: dark theme
refactor: * Рефакторинг существующего кода refactor: home screen
chore: * Общие действия по поддержке проекта chore: update tailwind version
docs: * Документация (например, истории storybook) docs: add story for Button
deps: * Настройка зависимостей проекта deps: add Tailwind
style: * Нефункциональные изменения дизайна style: change text color (calendar)
tests: * Добавление/обновление тестов tests: cover Button
any: * Все, что не подходит к предыдущему any: prettify

PR

Pull Request (запрос на слияние) должен быть назван по правилам именования коммитов. В описании следует включить всю значимую информацию по внесенному изменению:

  • что было сделано (если может быть непонятно из названия)
  • в каком модуле
  • какую issue закрывает PR
  • скриншоты, если актуально

Contributors

esperor
esperor

📆 💻 📦 🤔
Aleksandr
Aleksandr

📆 💻 🤔 🚇 🔣
Toderry
Toderry

💻 🤔
li3pm
li3pm

💻 🤔

About

MiniApp front

Topics

Resources

License

Stars

Watchers

Forks

Contributors 8