-
Notifications
You must be signed in to change notification settings - Fork 0
feat(web):Сверстать лендинг #101 #108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
ced7db2
refactor(web): обернуть заголовок Sidebar в Link для редиректа на гла…
AlexMadM 01b6bed
feat(web): внедрить новую главную страницу с секциями, проектами и за…
AlexMadM 6d9ec2f
feat(web): добавить ссылку на регистрацию и обновить стили для фона в…
AlexMadM 112dab3
feat(web): добавить ссылку для входа на странице регистрации
AlexMadM ef30056
feat(web): обновить auth layout, добавить фоновые стили и ссылки на г…
AlexMadM ae860c1
feat(web): обновить HeroSection на главной, улучшить дизайн кнопок и …
AlexMadM 74ea688
refactor(web): удалить старую главную страницу с секциями, проектами …
AlexMadM 7050eea
feat(web): внедрить обновлённую главную страницу с улучшенным дизайно…
AlexMadM 5083a7e
feat(ui): добавить анимации home-fade и home-fade-up в глобальные стили
AlexMadM File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,47 +1,5 @@ | ||
| import styles from './page.module.css' | ||
| import { HomePage } from '@/views/home' | ||
|
|
||
| export default function Home() { | ||
| return ( | ||
| <div className={styles.page}> | ||
| <main className={styles.main}> | ||
| <div className={styles.hero}> | ||
| <h1 className={styles.title}>Tracker Task</h1> | ||
| <p className={styles.subtitle}>Открытая система управления IT-проектами</p> | ||
| </div> | ||
|
|
||
| <div className={styles.content}> | ||
| <section className={styles.section}> | ||
| <h2>О проекте</h2> | ||
| <p> | ||
| Лёгкая, современная альтернатива Jira и Яндекс.Трекер для разработчиков и | ||
| небольших команд. | ||
| </p> | ||
| </section> | ||
|
|
||
| <section className={styles.section}> | ||
| <h2>Цель</h2> | ||
| <p> | ||
| Создать open-source решение для управления проектами, спринтами и задачами, | ||
| которое просто развернуть на собственном сервере. | ||
| </p> | ||
| </section> | ||
|
|
||
| <section className={styles.section}> | ||
| <h2>Возможности</h2> | ||
| <ul> | ||
| <li>Управление проектами и задачами</li> | ||
| <li>Спринты и бэклог</li> | ||
| <li>Issue tracking</li> | ||
| <li>Простое развёртывание</li> | ||
| <li>Открытый исходный код</li> | ||
| </ul> | ||
| </section> | ||
| </div> | ||
|
|
||
| <div className={styles.footer}> | ||
| <p className={styles.status}>🚧 Проект находится в разработке</p> | ||
| </div> | ||
| </main> | ||
| </div> | ||
| ) | ||
| return <HomePage /> | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| export { HomePage } from './ui/home-page' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,121 @@ | ||
| import type { ComponentType, SVGProps } from 'react' | ||
|
|
||
| import { | ||
| BookOpen, | ||
| Brain, | ||
| CheckCircle2, | ||
| KanbanSquare, | ||
| Radio, | ||
| Server, | ||
| Shield, | ||
| Terminal, | ||
| Users, | ||
| Zap, | ||
| } from '@repo/ui/icons' | ||
|
|
||
| type IconType = ComponentType<SVGProps<SVGSVGElement>> | ||
|
|
||
| export const navigationItems = [ | ||
| { label: 'Возможности', href: '#features' }, | ||
| { label: 'Установка', href: '#deploy' }, | ||
| { label: 'Сообщество', href: '#community' }, | ||
| ] as const | ||
|
|
||
| export const heroBadge = { | ||
| icon: Shield, | ||
| label: 'Open Source & Self-Hosted', | ||
| } as const | ||
|
|
||
| export const heroActions = { | ||
| primary: { | ||
| label: 'Попробовать демо', | ||
| href: '/projects', | ||
| }, | ||
| secondary: { | ||
| label: 'Развернуть', | ||
| href: '#deploy', | ||
| icon: Terminal, | ||
| }, | ||
| } as const | ||
|
|
||
| export const features: Array<{ | ||
| icon: IconType | ||
| title: string | ||
| description: string | ||
| highlight?: boolean | ||
| }> = [ | ||
| { | ||
| icon: Server, | ||
| title: 'Свой сервер', | ||
| description: 'Полный контроль над данными. Разверните на своём сервере за минуты.', | ||
| }, | ||
| { | ||
| icon: Zap, | ||
| title: 'Быстрый старт', | ||
| description: 'Минимальный порог входа. Начните работать без долгой настройки.', | ||
| }, | ||
| { | ||
| icon: KanbanSquare, | ||
| title: 'Kanban-first', | ||
| description: 'Визуальное управление задачами с drag & drop. Интуитивно и быстро.', | ||
| }, | ||
| { | ||
| icon: Brain, | ||
| title: 'AI-помощник', | ||
| description: 'Генерация эпиков и задач из описания. Ускоряет планирование в разы.', | ||
| }, | ||
| { | ||
| icon: Radio, | ||
| title: 'Мгновенные события', | ||
| description: 'Мгновенные уведомления через WebSocket. Команда всегда в курсе.', | ||
| }, | ||
| { | ||
| icon: Users, | ||
| title: 'Для команд 3-15', | ||
| description: | ||
| 'Оптимизировано для небольших продуктовых команд. Роли, права и приглашения.', | ||
| highlight: true, | ||
| }, | ||
| ] as const | ||
|
|
||
| export const boardColumns = [ | ||
| { title: 'To Do', count: 2 }, | ||
| { title: 'In Progress', count: 3 }, | ||
| { title: 'Review', count: 1 }, | ||
| { title: 'Done', count: 2 }, | ||
| ] as const | ||
|
|
||
| export const deploySteps = [ | ||
| { | ||
| step: '1', | ||
| code: 'git clone https://github.com/ITBooster-practice/tracker-task.git', | ||
| }, | ||
| { | ||
| step: '2', | ||
| code: 'cd tracker-task && cp apps/api/.env.example apps/api/.env', | ||
| }, | ||
| { | ||
| step: '3', | ||
| code: 'docker compose up -d', | ||
| }, | ||
| { | ||
| step: '4', | ||
| code: 'open http://localhost:3001', | ||
| }, | ||
| ] as const | ||
|
|
||
| export const communityActions: Array<{ | ||
| label: string | ||
| href: string | ||
| icon: IconType | ||
| }> = [ | ||
| { label: 'Дорожная карта', href: '#', icon: CheckCircle2 }, | ||
| { label: 'Как внести вклад', href: '#', icon: BookOpen }, | ||
| ] as const | ||
|
|
||
| export const footerLinks = [ | ||
| { label: 'GitHub', href: 'https://github.com/ITBooster-practice/tracker-task' }, | ||
| { label: 'Документация', href: '#' }, | ||
| { label: 'Issues', href: '#' }, | ||
| { label: 'Сообщество', href: '#' }, | ||
| ] as const |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| import { Button } from '@repo/ui' | ||
|
|
||
| import { communityActions } from '../model/content' | ||
|
|
||
| function CtaSection() { | ||
| return ( | ||
| <section id='community' className='border-t border-border py-[80px]'> | ||
| <div className='mx-auto max-w-[1200px] text-center'> | ||
| <h2 className='animate-home-fade-up mb-3 text-[28px] font-bold tracking-tight md:text-[32px]'> | ||
| Открытый код | ||
| </h2> | ||
| <p className='mx-auto mb-10 max-w-[500px] text-base text-muted-foreground'> | ||
| MIT лицензия. Предлагай улучшения, следи за roadmap и участвуй в развитии | ||
| продукта. | ||
| </p> | ||
| <div className='animate-home-fade-up-delay flex flex-wrap items-center justify-center gap-4'> | ||
| {communityActions.map((action) => { | ||
| const Icon = action.icon | ||
|
|
||
| return ( | ||
| <Button key={action.label} variant='outline' asChild> | ||
| <a href={action.href}> | ||
| <Icon className='mr-2 h-4 w-4' /> | ||
| {action.label} | ||
| </a> | ||
| </Button> | ||
| ) | ||
| })} | ||
| </div> | ||
| </div> | ||
| </section> | ||
| ) | ||
| } | ||
|
|
||
| export { CtaSection } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,59 @@ | ||
| import { Button } from '@repo/ui' | ||
| import { BookOpen, Github, Terminal } from '@repo/ui/icons' | ||
|
|
||
| import { deploySteps } from '../model/content' | ||
|
|
||
| function DeploySection() { | ||
| return ( | ||
| <section id='deploy' className='border-t border-border py-[80px]'> | ||
| <div className='mx-auto max-w-[1200px]'> | ||
| <div className='animate-home-fade-up mb-[48px] text-center'> | ||
| <h2 className='mb-3 text-[28px] font-bold tracking-tight md:text-[32px]'> | ||
| Развернуть за 4 шага | ||
| </h2> | ||
| <p className='text-base text-muted-foreground'>Docker Compose — и вы в деле</p> | ||
| </div> | ||
| <div className='animate-home-fade-up-delay mx-auto max-w-[640px]'> | ||
| <div className='overflow-hidden rounded-xl border border-border bg-card'> | ||
| <div className='flex items-center gap-2 border-b border-border px-6 py-4'> | ||
| <Terminal className='h-4 w-4 text-muted-foreground' /> | ||
| <span className='text-sm text-muted-foreground'>Terminal</span> | ||
| </div> | ||
| <div className='space-y-4 p-6'> | ||
| {deploySteps.map((step) => ( | ||
| <div key={step.step} className='flex items-start gap-4'> | ||
| <span className='mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-primary/10 text-xs font-medium text-primary'> | ||
| {step.step} | ||
| </span> | ||
| <code className='break-all font-mono text-sm text-foreground/80'> | ||
| {step.code} | ||
| </code> | ||
| </div> | ||
| ))} | ||
| </div> | ||
| </div> | ||
| <div className='mt-8 flex flex-wrap items-center justify-center gap-4'> | ||
| <Button variant='outline' asChild> | ||
| <a href='#'> | ||
| <BookOpen className='mr-2 h-4 w-4' /> | ||
| Документация | ||
| </a> | ||
| </Button> | ||
| <Button asChild> | ||
| <a | ||
| href='https://github.com/ITBooster-practice/tracker-task' | ||
| target='_blank' | ||
| rel='noopener noreferrer' | ||
| > | ||
| <Github className='mr-2 h-4 w-4' /> | ||
| Репозиторий | ||
| </a> | ||
| </Button> | ||
| </div> | ||
| </div> | ||
| </div> | ||
| </section> | ||
| ) | ||
| } | ||
|
|
||
| export { DeploySection } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.