content
parent
fbedda1c51
commit
a0e1257a40
|
|
@ -10,14 +10,16 @@ import { filter } from "rxjs/operators";
|
|||
})
|
||||
export class SEOService {
|
||||
constructor(private title: Title, private meta: Meta, router:Router) {
|
||||
|
||||
router.events
|
||||
.pipe(
|
||||
filter((event:any)=>{return event.routerEvent})
|
||||
filter((event:any)=>event.url&&event.type == 1)
|
||||
)
|
||||
.subscribe(
|
||||
(event)=>{
|
||||
console.log('Seo', event.routerEvent.url);
|
||||
let data = this.seoData[event.routerEvent.url]
|
||||
console.log('Seo', event);
|
||||
let url = event.url
|
||||
let data = this.seoData[url]
|
||||
if(data){
|
||||
this.updateTitle(data.title);
|
||||
this.updateDescription(data.description);
|
||||
|
|
|
|||
|
|
@ -44,9 +44,9 @@
|
|||
<div class="banner-text">
|
||||
<h2>Остались вопросы?</h2>
|
||||
<div>Мы с радостью на них ответим!</div>
|
||||
<!-- <request>
|
||||
<request>
|
||||
<button class="btn white">Напишите нам</button>
|
||||
</request> -->
|
||||
</request>
|
||||
</div>
|
||||
<div class="banner-img"></div>
|
||||
</div>
|
||||
|
|
@ -91,8 +91,7 @@
|
|||
<svg>
|
||||
<use href="assets/ico/webpage_24.svg#ico"></use>
|
||||
</svg>
|
||||
<!-- <request>Напишите нам</request> -->
|
||||
|
||||
<request>Напишите нам</request>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { CommonModule, DatePipe, ViewportScroller } from '@angular/common';
|
||||
import { RouterOutlet, NavigationEnd, Router, RouterLink, RouterLinkActive } from '@angular/router';
|
||||
import { RequestComponent } from './request/request.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
standalone: true,
|
||||
imports: [CommonModule, RouterOutlet, RouterLink, RouterLinkActive, DatePipe],
|
||||
imports: [CommonModule, RouterOutlet, RouterLink, RouterLinkActive, DatePipe, RequestComponent],
|
||||
templateUrl: './app.component.html',
|
||||
styleUrl: './app.component.scss'
|
||||
})
|
||||
export class AppComponent {
|
||||
|
||||
|
||||
title = 'NIR';
|
||||
dateNow?: Date;
|
||||
navShow = false;
|
||||
|
|
|
|||
|
|
@ -1,30 +1,30 @@
|
|||
import { Routes } from '@angular/router';
|
||||
import { HomeComponent } from './home/home.component';
|
||||
import { AboutComponent } from './about/about.component';
|
||||
// import { AutomatizationComponent } from './automatization/automatization.component';
|
||||
// import { DevelopmentComponent } from './development/development.component';
|
||||
// import { SitesComponent } from './sites/sites.component';
|
||||
// import { ProjectsComponent } from './projects/projects.component';
|
||||
// import { ContactsComponent } from './contacts/contacts.component';
|
||||
// import { VniigazComponent } from './projects/vniigaz/vniigaz.component';
|
||||
// import { FaufcsComponent } from './projects/faufcs/faufcs.component';
|
||||
// import { Tk023Component } from './projects/tk023/tk023.component';
|
||||
// import { Tk465Component } from './projects/tk465/tk465.component';
|
||||
// import { ScvgComponent } from './projects/scvg/scvg.component';
|
||||
// import { IntergazComponent } from './projects/intergaz/intergaz.app.routescomponent';
|
||||
import { AutomatizationComponent } from './automatization/automatization.component';
|
||||
import { DevelopmentComponent } from './development/development.component';
|
||||
import { SitesComponent } from './sites/sites.component';
|
||||
import { ContactsComponent } from './contacts/contacts.component';
|
||||
import { ProjectsComponent } from './projects/projects.component';
|
||||
import { VniigazComponent } from './projects/vniigaz/vniigaz.component';
|
||||
import { FaufcsComponent } from './projects/faufcs/faufcs.component';
|
||||
import { Tk023Component } from './projects/tk023/tk023.component';
|
||||
import { Tk465Component } from './projects/tk465/tk465.component';
|
||||
import { ScvgComponent } from './projects/scvg/scvg.component';
|
||||
import { IntergazComponent } from './projects/intergaz/intergaz.component';
|
||||
|
||||
export const routes: Routes = [
|
||||
{path: "", component: HomeComponent},
|
||||
{path: "about", component: AboutComponent},
|
||||
// {path: "automatization", component: AutomatizationComponent},
|
||||
// {path: "development", component: DevelopmentComponent},
|
||||
// {path: "contacts", component: ContactsComponent},
|
||||
// {path: "sites", component: SitesComponent},
|
||||
// {path: "projects", component: ProjectsComponent},
|
||||
// {path:'projects/vniigaz', component: VniigazComponent},
|
||||
// {path:'projects/faufcs', component: FaufcsComponent},
|
||||
// {path:'projects/tk023', component: Tk023Component},
|
||||
// {path:'projects/tk465', component: Tk465Component},
|
||||
// {path:'projects/scvg', component: ScvgComponent},
|
||||
// {path:'projects/intergaz', component: IntergazComponent}
|
||||
{path: "automatization", component: AutomatizationComponent},
|
||||
{path: "development", component: DevelopmentComponent},
|
||||
{path: "contacts", component: ContactsComponent},
|
||||
{path: "sites", component: SitesComponent},
|
||||
{path: "projects", component: ProjectsComponent},
|
||||
{path:'projects/vniigaz', component: VniigazComponent},
|
||||
{path:'projects/faufcs', component: FaufcsComponent},
|
||||
{path:'projects/tk023', component: Tk023Component},
|
||||
{path:'projects/tk465', component: Tk465Component},
|
||||
{path:'projects/scvg', component: ScvgComponent},
|
||||
{path:'projects/intergaz', component: IntergazComponent}
|
||||
];
|
||||
|
|
|
|||
|
|
@ -0,0 +1,101 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<h1>Автоматизация процессов</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
Забирает рутину, возвращает результат
|
||||
</h5>
|
||||
<request>
|
||||
<button class="btn primary">Напишите нам</button>
|
||||
</request>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card" src="assets/img/automatization.jpg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row anchor-menu">
|
||||
<a (click)="anchorRouting('about')" class="anchor-menu-item">О продукте</a>
|
||||
<a (click)="anchorRouting('advantage')" class="anchor-menu-item">Преимущества</a>
|
||||
<a (click)="anchorRouting('solutions')" class="anchor-menu-item">Решения</a>
|
||||
<a (click)="anchorRouting('reply')" class="anchor-menu-item">Обратная связь</a>
|
||||
</div>
|
||||
|
||||
<span id="about"></span>
|
||||
|
||||
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col col-6">
|
||||
<h2>О продукте</h2>
|
||||
<div>Мы можем автоматизировать для вас бизнес-процессы любой сложности, от простой автогенерации документов до комплексных решений по управлению производством, АИС или ФГИС.<br/><br/>
|
||||
Больше не нужно заполнять отчеты, собирать рабочие группы, напоминать им о задачах и проверять комплектность документов. Мы создадим для Вас электронного секретаря, выполняющего всю скучную работу за Вас. А его обязанности зависят от Ваших пожеланий. </div>
|
||||
</div>
|
||||
<div class="col-6 col">
|
||||
<h2>Для кого</h2>
|
||||
<ul>
|
||||
<li>Органы государственной власти федерального, регионального и муниципального уровней</li>
|
||||
<li>Межведомственные организации</li>
|
||||
<li>Коммерческие компании с большим оборотом документов</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row wide">
|
||||
<img-carusel [images]="images"></img-carusel>
|
||||
</div>
|
||||
|
||||
|
||||
<span id="advantage"></span>
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col-6 advantage-left">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="col-6 col">
|
||||
<h2>Функциональные преимущества</h2>
|
||||
<ul>
|
||||
<li>Все рутинные задачи собираются в одной программе и выполняются автоматически</li>
|
||||
<li>Снижается трудоемкость процессов, повышается их прозрачность и скорость</li>
|
||||
<li>Мгновенный срез всех событий по проектам, документам, пользователям, их статистика и история</li>
|
||||
<li>Гибкие процессы, позволяющие решать задачи с поправкой на жизненные обстоятельства</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<span id="solutions"></span>
|
||||
<div class="row solution">
|
||||
<div class="col-6 col">
|
||||
<h2>Решения по автоматизации</h2>
|
||||
<ul>
|
||||
<li>Работа по процессам доступна с любого устройства и не требует дополнительных приложений</li>
|
||||
<li>Мгновенный доступ к нормативно-правовым документам и справочным материалам</li>
|
||||
<li>Ограничение доступа к информации по ролям участников</li>
|
||||
<li>Автозаполнение полей, отчетов и документов необходимой информацией</li>
|
||||
<li>Простой интерфейс, защищающий от ошибок пользователя</li>
|
||||
<li>Собственная система автоматического развертывания АИС на вашем сервере</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6 solution-right">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row bg-light">
|
||||
<reviews></reviews>
|
||||
</div>
|
||||
|
||||
<span id="reply"></span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
|
||||
|
||||
.advantage-left{
|
||||
border-radius: 16px;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-image: url("/assets/img/automatization-advantage.jpg");
|
||||
aspect-ratio: 582 / 336;
|
||||
align-self: flex-start;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
gap: 30px;
|
||||
>div{
|
||||
width: calc(50% - 15px);
|
||||
box-shadow: 0 0 0 30px var(--clr-gr-lt);
|
||||
border-radius: 16px;
|
||||
aspect-ratio: 1;
|
||||
&:first-child, &:last-child{
|
||||
width: auto;
|
||||
margin-bottom: auto;
|
||||
background-color: var(--clr-gr-lt);
|
||||
aspect-ratio: none;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.solution-right{
|
||||
border-radius: 16px;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-image: url("/assets/img/automatization-solution.png");
|
||||
aspect-ratio: 582 / 582;
|
||||
|
||||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
flex-wrap: wrap;
|
||||
gap: 30px;
|
||||
>div{
|
||||
width: 480px;
|
||||
box-shadow: 0 0 0 30px #FFF;
|
||||
border-radius: 16px;
|
||||
aspect-ratio: 480 / 276;
|
||||
&:first-child, &:last-child{
|
||||
width: auto;
|
||||
margin-left: auto;
|
||||
background-color: #FFF;
|
||||
aspect-ratio: none;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[id]{
|
||||
position: static;
|
||||
margin-block: -80px 80px;
|
||||
}
|
||||
|
||||
|
||||
@media screen and (max-width: 1240px){
|
||||
.advantage-left{
|
||||
height: 70%;
|
||||
}
|
||||
.solution-right{
|
||||
height: 70%;
|
||||
div{width: 80%};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media screen and (max-width: 1024px){
|
||||
.solution{
|
||||
flex-direction: column-reverse;
|
||||
}
|
||||
.solution-right{
|
||||
width: 100%;
|
||||
>div{
|
||||
width: 85%;
|
||||
box-shadow: 0 0 0 30px #FFF;
|
||||
border-radius: 16px;
|
||||
aspect-ratio: 480 / 276;
|
||||
&:first-child, &:last-child{
|
||||
width: auto;
|
||||
margin-left: auto;
|
||||
background-color: #FFF;
|
||||
aspect-ratio: none;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { AutomatizationComponent } from './automatization.component';
|
||||
|
||||
describe('AutomatizationComponent', () => {
|
||||
let component: AutomatizationComponent;
|
||||
let fixture: ComponentFixture<AutomatizationComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [AutomatizationComponent]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(AutomatizationComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { SEOService } from '../_services/seo.service';
|
||||
import { ReviewsComponent } from '../reviews/reviews.component';
|
||||
import { RequestComponent } from '../request/request.component';
|
||||
import { ImgCaruselComponent } from '../img-carusel/img-carusel.component';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-automatization',
|
||||
standalone: true,
|
||||
imports: [ReviewsComponent, RequestComponent, ImgCaruselComponent],
|
||||
templateUrl: './automatization.component.html',
|
||||
styleUrl: './automatization.component.scss'
|
||||
})
|
||||
export class AutomatizationComponent {
|
||||
constructor(
|
||||
private router:Router, private seo:SEOService
|
||||
){}
|
||||
|
||||
anchor?:string;
|
||||
|
||||
anchorRouting(anchor:string){
|
||||
if(anchor==this.anchor){
|
||||
this.router.navigate([`/automatization`]).then(
|
||||
()=>this.router.navigate([`/automatization`], { fragment: anchor })
|
||||
)
|
||||
}else{
|
||||
this.anchor = anchor;
|
||||
console.log(anchor)
|
||||
this.router.navigateByUrl(`/automatization#${anchor}`)
|
||||
}
|
||||
}
|
||||
|
||||
images = [
|
||||
'assets/img/carusel/carusel-01.jpg',
|
||||
'assets/img/carusel/carusel-02.jpg',
|
||||
'assets/img/carusel/carusel-03.jpg',
|
||||
'assets/img/carusel/carusel-04.jpg',
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<h1>Контакты</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
​
|
||||
</h5>
|
||||
<request>
|
||||
<button class="btn primary">Напишите нам</button>
|
||||
</request>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card" src="assets/img/contacts.jpg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 col">
|
||||
<h2>Наши контакты</h2>
|
||||
<div class="contacts">
|
||||
<a href="tel:+74994900465">
|
||||
<svg>
|
||||
<use href="assets/ico/call_24.svg#ico"></use>
|
||||
</svg>
|
||||
+7 (499) 490-04-65
|
||||
</a>
|
||||
<a href="mailto:info@nirgroup.ru">
|
||||
<svg>
|
||||
<use href="assets/ico/mail_24.svg#ico"></use>
|
||||
</svg>
|
||||
info@nirgroup.ru
|
||||
</a>
|
||||
<a>
|
||||
<svg>
|
||||
<use href="assets/ico/pin_drop_24.svg#ico"></use>
|
||||
</svg>
|
||||
121170, г. Москва, Кутузовский проспект, д. 36, стр. 3, офис 222
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-6 col">
|
||||
<h2>Реквизиты</h2>
|
||||
<div>
|
||||
Юр. адрес: 121170, г. Москва, Вн. Тер. Г. Муниципальный Округ Дорогомилово, пр-кт Кутузовский, д. 36, стр. 3, офис 222<br><br>
|
||||
ИНН: 9721017423<br><br>
|
||||
ОГРН: 5167746179090<br><br>
|
||||
Лицензия в Минцифры: №12571
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 map">
|
||||
<iframe src="https://yandex.ru/map-widget/v1/?um=constructor%3Afe145a4a4b45bde2e2a99bed333711362bc62bb832ece6d2b39c0db729bddc40&source=constructor" width="100%" height="668" frameborder="0"></iframe>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
.contacts{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
line-height: 24px;
|
||||
a{
|
||||
color: var(--clr-black);
|
||||
text-decoration: none;
|
||||
display: flex;
|
||||
gap: 16px;
|
||||
svg{
|
||||
flex-shrink: 0;
|
||||
color: var(--clr-black-lt);
|
||||
}
|
||||
}
|
||||
>div{
|
||||
flex: 1 1 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 16px;
|
||||
}
|
||||
.logo img{
|
||||
width: 152px;
|
||||
height: 152px;
|
||||
}
|
||||
}
|
||||
.map{
|
||||
border-radius: 16px;
|
||||
overflow: hidden;
|
||||
}
|
||||
iframe{
|
||||
max-height: calc(50vw - 30px);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1240px){
|
||||
iframe{
|
||||
max-height: calc(50vw - 30px);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media screen and (max-width: 1024px){
|
||||
.jumb-slogan{
|
||||
margin-block: 0;
|
||||
}
|
||||
iframe{
|
||||
max-height: calc(100vw - 30px);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { SEOService } from '../_services/seo.service';
|
||||
import { ReviewsComponent } from '../reviews/reviews.component';
|
||||
import { RequestComponent } from '../request/request.component';
|
||||
import { ImgCaruselComponent } from '../img-carusel/img-carusel.component';
|
||||
|
||||
@Component({
|
||||
selector: 'contacts',
|
||||
standalone: true,
|
||||
imports: [ReviewsComponent, RequestComponent, ImgCaruselComponent],
|
||||
templateUrl: './contacts.component.html',
|
||||
styleUrls: ['./contacts.component.scss']
|
||||
})
|
||||
export class ContactsComponent {
|
||||
|
||||
constructor(private seo:SEOService){}
|
||||
|
||||
ngOnInit(){
|
||||
this.seo.updateTitle('Контакты | НИР Груп');
|
||||
this.seo.updateDescription('Тел: +7 (499) 490-04-65; E-mail: info@nirgroup.ru; Адрес: 121170, г. Москва, Кутузовский проспект, д. 36, стр. 3, офис 222');
|
||||
this.seo.updateImage('assets/img/contacts.jpg')
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<h1>Заказная разработка ПО</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
Создадим ПО любой сложности под любые задачи
|
||||
</h5>
|
||||
<request>
|
||||
<button class="btn primary">Напишите нам</button>
|
||||
</request>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card" src="assets/img/development.jpg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row anchor-menu">
|
||||
<a (click)="anchorRouting('about')" class="anchor-menu-item">О продукте</a>
|
||||
<a (click)="anchorRouting('advantage')" class="anchor-menu-item">Преимущества</a>
|
||||
<a (click)="anchorRouting('reply')" class="anchor-menu-item">Обратная связь</a>
|
||||
</div>
|
||||
|
||||
<a id="about"></a>
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col col-6">
|
||||
<h2>О продукте</h2>
|
||||
<div>Разработка программного обеспечения любой сложности. Помогаем автоматизировать бизнес-процессы, избавляем от рутинных задач, освобождаем ваше время для более важных дел.</div>
|
||||
</div>
|
||||
<div class="col-6 col">
|
||||
<h2>Для кого</h2>
|
||||
<ul>
|
||||
<li>Органы государственной власти федерального, регионального и муниципального уровней</li>
|
||||
<li>Межведомственные организации</li>
|
||||
<li>Коммерческие компании</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a id="function"></a>
|
||||
<div class="row wide">
|
||||
<img-carusel [images]="images"></img-carusel>
|
||||
</div>
|
||||
<a id="advantage"></a>
|
||||
|
||||
|
||||
<div class="row bg-light advantage">
|
||||
<div class="col-6 col">
|
||||
<h2>Преимущества</h2>
|
||||
<ul>
|
||||
<li>Понимаем Ваши задачи и правильно переводим их в ТЗ</li>
|
||||
<li>Профессиональная команда разработки полного цикла с опытом работы в масштабных проектах</li>
|
||||
<li>Большой опыт работы в бюрократически сложных обстоятельствах</li>
|
||||
<li>Широкие Best Practices в решении нетиповых задач</li>
|
||||
<li>Глубокий анализ Ваших задач и процессов</li>
|
||||
<li>Разработка ПО с учетом жизненных особенностей Вашей организации</li>
|
||||
<li>Тесное сотрудничество на всех этапах взаимодействий</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6 advantage-right">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<reviews></reviews>
|
||||
</div>
|
||||
|
||||
<a id="reply"></a>
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
|
||||
|
||||
.advantage-right{
|
||||
border-radius: 16px;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-image: url("/assets/img/development-advantage.jpg");
|
||||
aspect-ratio: 582 / 336;
|
||||
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-self: flex-start;
|
||||
flex-wrap: wrap;
|
||||
gap: 30px;
|
||||
>div{
|
||||
width: calc(50% - 15px);
|
||||
box-shadow: 0 0 0 30px var(--clr-gr-lt);
|
||||
border-radius: 16px;
|
||||
aspect-ratio: 1;
|
||||
&:first-child, &:last-child{
|
||||
width: auto;
|
||||
margin-bottom: auto;
|
||||
background-color: var(--clr-gr-lt);
|
||||
aspect-ratio: none;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[id]{
|
||||
position: static;
|
||||
margin-block: -80px 80px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px){
|
||||
.advantage-right{
|
||||
order: -1;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { SEOService } from '../_services/seo.service';
|
||||
import { ReviewsComponent } from '../reviews/reviews.component';
|
||||
import { RequestComponent } from '../request/request.component';
|
||||
import { ImgCaruselComponent } from '../img-carusel/img-carusel.component';
|
||||
|
||||
@Component({
|
||||
selector: 'development',
|
||||
standalone: true,
|
||||
imports: [ReviewsComponent, RequestComponent, ImgCaruselComponent],
|
||||
templateUrl: './development.component.html',
|
||||
styleUrls: ['./development.component.scss']
|
||||
})
|
||||
export class DevelopmentComponent {
|
||||
|
||||
constructor(
|
||||
private router:Router, private seo:SEOService
|
||||
){}
|
||||
|
||||
ngOnInit(){
|
||||
this.seo.updateTitle('Разработка программного обеспечения (ПО) на заказ');
|
||||
this.seo.updateDescription('Разработка ПО любой сложности под любые задачи. Помогаем автоматизировать бизнес-процессы, избавляем от рутинных задач, находим новые решения.');
|
||||
this.seo.updateImage('assets/img/development.jpg')
|
||||
}
|
||||
|
||||
anchor?:string;
|
||||
|
||||
anchorRouting(anchor:string){
|
||||
if(anchor==this.anchor){
|
||||
this.router.navigate([`/development`]).then(
|
||||
()=>this.router.navigate([`/development`], { fragment: anchor })
|
||||
)
|
||||
}else{
|
||||
this.anchor = anchor;
|
||||
this.router.navigate([`/development`], { fragment: anchor })
|
||||
}
|
||||
}
|
||||
|
||||
images = [
|
||||
'assets/img/carusel/carusel-10.jpg',
|
||||
'assets/img/carusel/carusel-11.jpg',
|
||||
'assets/img/carusel/carusel-12.jpg',
|
||||
'assets/img/carusel/carusel-13.jpg',
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
|
||||
<div class="col-12 carusel-slides">
|
||||
<swiper-container [config]="config" class="swiperDesktop" slides-per-view="3" space-between="10" [centered-slides]="true" [loop]="true" pagination-enabled="true" pagination-type="fraction" pagination-el=".carusel-navigation-counter" navigation-next-el=".swiper-button-next" navigation-prev-el=".swiper-button-prev" keyboard="true" mousewheel="true">
|
||||
<swiper-slide *ngFor="let img of images">
|
||||
<img class="carusel-item" [src]="img" (click)="select(img)">
|
||||
</swiper-slide>
|
||||
</swiper-container>
|
||||
|
||||
<swiper-container [config]="configMobile" class="swiperMobile" slides-per-view="1" space-between="10" [centered-slides]="true" [loop]="true" pagination-enabled="true" pagination-type="fraction" pagination-el=".carusel-navigation-counter" navigation-next-el=".swiper-button-next" navigation-prev-el=".swiper-button-prev" keyboard="true" mousewheel="true">
|
||||
<swiper-slide swiperSlide *ngFor="let img of images">
|
||||
<img class="carusel-item" [src]="img" (click)="select(img)">
|
||||
</swiper-slide>
|
||||
</swiper-container>
|
||||
<!-- <div class="carusel-mask"></div> -->
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="carusel-navigation">
|
||||
<button class="swiper-button-prev">
|
||||
<svg>
|
||||
<use href="assets/ico/chevron_left_big_24.svg#ico"></use>
|
||||
</svg>
|
||||
</button>
|
||||
<div class="carusel-navigation-counter"></div>
|
||||
<button class="swiper-button-next">
|
||||
<svg>
|
||||
<use href="assets/ico/chevron_right_big_24.svg#ico"></use>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="selected" (click)="selected = null" *ngIf="selected">
|
||||
<img [src]="selected" alt="">
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,138 @@
|
|||
:host{
|
||||
width: 100%;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 60px
|
||||
}
|
||||
|
||||
|
||||
.carusel-slides{
|
||||
width: 100%;
|
||||
position: relative;
|
||||
mask-image: linear-gradient(to right, transparent 0%, #FFF 10%, #FFF 90%, transparent 100%);;
|
||||
swiper-container{
|
||||
margin-inline: -220px;
|
||||
.carusel-item{
|
||||
display: block;
|
||||
width: 582px;
|
||||
height: 360px;
|
||||
object-fit: cover;
|
||||
border-radius: 16px;
|
||||
cursor: pointer;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.carusel-mask{
|
||||
position: absolute;
|
||||
left: -220px;
|
||||
top: 0;
|
||||
width: calc(100% + 440px);
|
||||
height: 100%;
|
||||
background-color: rgba(255, 255, 255, 0.63);
|
||||
z-index: 1;
|
||||
pointer-events: none;
|
||||
// background: linear-gradient(to right, var(--clr-gr-lt) 8%, transparent 15%, transparent 85%, var(--clr-gr-lt) 92%);
|
||||
}
|
||||
|
||||
.carusel-navigation{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
gap: 20px;
|
||||
.carusel-navigation-counter{
|
||||
width: auto;
|
||||
top: auto;
|
||||
}
|
||||
button{
|
||||
position: relative;
|
||||
border: none !important;
|
||||
background-color: transparent !important;
|
||||
left: auto;
|
||||
right: auto;
|
||||
padding: 0;
|
||||
&::after{
|
||||
content: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.selected{
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
position:fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background-color: var(--clr-black-lt);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
z-index: 20;
|
||||
cursor: pointer;
|
||||
img{
|
||||
max-width: calc(100% - 30px);
|
||||
max-height: calc(100% - 30px);
|
||||
}
|
||||
}
|
||||
|
||||
.swiperMobile{
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1240px) {
|
||||
|
||||
.carusel-slides{
|
||||
|
||||
swiper-container{
|
||||
|
||||
.carusel-item{
|
||||
|
||||
width: 95%;
|
||||
height: 85%;
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
:host{
|
||||
gap:20px;
|
||||
}
|
||||
|
||||
.carusel-slides{
|
||||
mask-image:none;
|
||||
height: 75vw;
|
||||
swiper.swiperMobile{
|
||||
display: block;
|
||||
margin-inline: 0;
|
||||
height: auto;
|
||||
.carusel-item{
|
||||
display: block;
|
||||
width: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: 16px;
|
||||
height: auto;
|
||||
border-radius: 12px;
|
||||
cursor: pointer;
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
.swiperDesktop{
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.selected{
|
||||
img{
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { ImgCaruselComponent } from './img-carusel.component';
|
||||
|
||||
describe('ImgCaruselComponent', () => {
|
||||
let component: ImgCaruselComponent;
|
||||
let fixture: ComponentFixture<ImgCaruselComponent>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [ImgCaruselComponent]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(ImgCaruselComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
import { NgFor, NgIf } from '@angular/common';
|
||||
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'img-carusel',
|
||||
standalone: true,
|
||||
imports: [NgFor, NgIf],
|
||||
templateUrl: './img-carusel.component.html',
|
||||
styleUrl: './img-carusel.component.scss',
|
||||
schemas: [CUSTOM_ELEMENTS_SCHEMA]
|
||||
})
|
||||
export class ImgCaruselComponent {
|
||||
@Input() images!:string[];
|
||||
selected?: string | null;
|
||||
|
||||
public config = {
|
||||
slidesPerView: 3,
|
||||
initialSlide: 0,
|
||||
spaceBetween: 10,
|
||||
centeredSlides: true,
|
||||
loop: true,
|
||||
pagination:{
|
||||
enabled: true,
|
||||
type: 'fraction',
|
||||
el:'.carusel-navigation-counter'
|
||||
},
|
||||
navigation: {
|
||||
nextEl: '.swiper-button-next',
|
||||
prevEl: '.swiper-button-prev',
|
||||
},
|
||||
keyboard: true,
|
||||
mousewheel: true
|
||||
};
|
||||
|
||||
public configMobile = {
|
||||
slidesPerView: 1,
|
||||
initialSlide: 0,
|
||||
spaceBetween: 10,
|
||||
centeredSlides: true,
|
||||
loop: true,
|
||||
pagination:{
|
||||
enabled: true,
|
||||
type: 'fraction',
|
||||
el:'.carusel-navigation-counter'
|
||||
},
|
||||
navigation: {
|
||||
nextEl: '.swiper-button-next',
|
||||
prevEl: '.swiper-button-prev',
|
||||
},
|
||||
keyboard: true,
|
||||
mousewheel: true
|
||||
};
|
||||
|
||||
select(img:string){
|
||||
this.selected = img
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<a routerLink="/projects" class="breadcrumbs">
|
||||
<svg>
|
||||
<use href="assets/ico/chevron_left_big_24.svg#ico"></use>
|
||||
</svg>
|
||||
Все проекты
|
||||
</a>
|
||||
<h1>ФАУ «ФЦС»</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
Создание корпоративного сайта
|
||||
</h5>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card fit-contain" src="assets/img/faufcs/faufcs-top.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col col-6">
|
||||
<h2>Описание</h2>
|
||||
<div>У учреждения уже имелся корпоративный сайт, выполнявший все задачи. Но функционал был настолько сложно реализован, что для выполнения простых операций с контентом требовалась помощь компании разработчика. Часть задач по процессу решалось в ручном режиме, а весь огромный массив данных был неструктурирован и хаотичен.</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Бизнес-задача</h2>
|
||||
<div>Требовался корпоративный сайт, с простым и удобным конструктором контента.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-6">
|
||||
<h2>ИТ-задача</h2>
|
||||
<div>Создание собственной платформы для сайта, на которой был реализован специфический функционал по работе с данными, а также упрощенная версия электронного документооборота с привязкой к бизнес-процессам.</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Результат</h2>
|
||||
<div>Разработали конструктор сайта, сделали закрытый контур для входа в личные кабинеты сотрудников Заказчика. Создали функционал подачи заявок из внешнего контура в конкретное структурное подразделение Заказчика. Перенесли всю информацию со старого сайта на новый. Развернули и запустили новый сайт на сервере Заказчика. Создали обучающий курс по эксплуатации из 8 видеоуроков.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row wide bg-light">
|
||||
<img-carusel [images]="images"></img-carusel>
|
||||
</div>
|
||||
|
||||
<!-- <div class="row">
|
||||
<div class="col-12">
|
||||
<h2>Как работали</h2>
|
||||
</div>
|
||||
<div class="col-12 longread">
|
||||
<p class="br">Встретились с заказчиком по вопросу создания информационной системы. После встречи сделали презентационные макеты интерфейсов предполагаемой системы, а также видеоролик с демонстрацией работы пользователя с ней. Заказчику все понравилось. Далее помогли Заказчику с написанием корректного ТЗ. После чего подписали договор и приступили к работе. Договор предусматривал сначала создание прототипа системы и, в случае одобрения Заказчиком результатов работ — дальнейшую разработку полноценной версии.</p>
|
||||
<img src="assets/img/faufcs/faufcs03.png" alt="">
|
||||
<p>В прототипе Заказчику было важно посмотреть, как работают отдельные элементы системы: автоматическое определение геолокации фотографий, загруженных в систему, а также запись и считывание rfid-меток. Для прототипа разработали макеты и согласовали с заказчиком, после чего разработали требуемый пр</p>
|
||||
<p class="br">Пока велась разработка доп модулей, проводили демонстрацию работы системы сотрудникам Минцифры в рамках заявки на включение системы в реестр отечественного ПО. В результате разработали доп модули, синхронизировали их с системой, помогли Заказчику развернуть систему на их сервере и ввести систему в эксплуатацию.<br>В настоящее время занимаемся технической поддержкой системы. </p>
|
||||
<p>Так как основной принцип системы был спроектирован и заложен на этапе прототипа, то подготовка новых макетов не заняла много времени. Согласование макетов с Заказчиком прошли также быстро и приступили к разработке. Полноценную систему создали за 4 месяца и сдали ее Заказчику.<br>После приемки помогали Заказчику в подготовке документов на регистрацию системы в Роспатенте, а также на включение системы в реестр отечественного ПО. Спустя 3 месяца с начала эксплуатации системы Заказчик обратился с предложение разработать дополнительные модули (доп функционал) к системе. Время на разработку новых модулей было немного (Заказчик торопил), поэтому проектирование макетов и разработка модулей велась параллельно. Здесь нам помог предыдущий опыт разработки данной системы.</p>
|
||||
<img src="assets/img/faufcs/faufcs04.png" alt="">
|
||||
</div>
|
||||
</div> -->
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { SEOService } from '../../_services/seo.service';
|
||||
import { RequestComponent } from '../../request/request.component';
|
||||
import { ImgCaruselComponent } from '../../img-carusel/img-carusel.component';
|
||||
import { RouterLink } from '@angular/router';
|
||||
|
||||
@Component({
|
||||
selector: 'faufcs',
|
||||
standalone: true,
|
||||
imports: [RequestComponent, ImgCaruselComponent, RouterLink],
|
||||
templateUrl: './faufcs.component.html',
|
||||
styleUrls: ['./faufcs.component.scss']
|
||||
})
|
||||
export class FaufcsComponent {
|
||||
|
||||
constructor(private seo:SEOService){}
|
||||
|
||||
images = [
|
||||
'assets/img/faufcs/faufcs01.png',
|
||||
'assets/img/faufcs/faufcs02.png',
|
||||
'assets/img/faufcs/faufcs03.png',
|
||||
'assets/img/faufcs/faufcs04.png',
|
||||
'assets/img/faufcs/faufcs05.png',
|
||||
]
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<a href routerLink="/projects" class="breadcrumbs">
|
||||
<svg>
|
||||
<use href="assets/ico/chevron_left_big_24.svg#ico"></use>
|
||||
</svg>
|
||||
Все проекты
|
||||
</a>
|
||||
<h1>ИНТЕРГАЗСЕРТ</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
Создание автоматизированной платрформы допуска продукции
|
||||
</h5>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card fit-contain" src="assets/img/intergaz/intergaz-top.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col col-6">
|
||||
<h2>Описание</h2>
|
||||
<div>Рабочая информация хранилась частично в бумажном, частично в электронном виде, в нескольких местах. Их поиск и обработка замедляли все процессы и увеличивали нагрузку на сотрудников. Руководство хотело получать информацию об эффективности сотрудников и иметь на руках зафиксированные доказательства проведенных работ на случай возникновения претензий у других организаций.</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Бизнес-задача</h2>
|
||||
<div>Создание единой стандартизированной базы данных по процессам оценки соответствия в системе добровольной сертификации ИНТЕРГАЗСЕРТ</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-6">
|
||||
<h2>ИТ-задача</h2>
|
||||
<div>Разработать информационную систему для сбора, регистрации и учета информации</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Результат</h2>
|
||||
<div>Разработали и внедрили систему, превосходящую по своим возможностям запланированный функционал. Оказали поддержку по аккредитации данной системы в реестре отечественного ПО Минцифры.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row wide bg-light">
|
||||
<img-carusel [images]="images"></img-carusel>
|
||||
</div>
|
||||
|
||||
<!-- <div class="row">
|
||||
<div class="col-12">
|
||||
<h2>Как работали</h2>
|
||||
</div>
|
||||
<div class="col-12 longread">
|
||||
<p class="br">Встретились с заказчиком по вопросу создания информационной системы. После встречи сделали презентационные макеты интерфейсов предполагаемой системы, а также видеоролик с демонстрацией работы пользователя с ней. Заказчику все понравилось. Далее помогли Заказчику с написанием корректного ТЗ. После чего подписали договор и приступили к работе. Договор предусматривал сначала создание прототипа системы и, в случае одобрения Заказчиком результатов работ — дальнейшую разработку полноценной версии.</p>
|
||||
<img src="assets/img/intergaz/intergaz03.png" alt="">
|
||||
<p>В прототипе Заказчику было важно посмотреть, как работают отдельные элементы системы: автоматическое определение геолокации фотографий, загруженных в систему, а также запись и считывание rfid-меток. Для прототипа разработали макеты и согласовали с заказчиком, после чего разработали требуемый пр</p>
|
||||
<p class="br">Пока велась разработка доп модулей, проводили демонстрацию работы системы сотрудникам Минцифры в рамках заявки на включение системы в реестр отечественного ПО. В результате разработали доп модули, синхронизировали их с системой, помогли Заказчику развернуть систему на их сервере и ввести систему в эксплуатацию.<br>В настоящее время занимаемся технической поддержкой системы. </p>
|
||||
<p>Так как основной принцип системы был спроектирован и заложен на этапе прототипа, то подготовка новых макетов не заняла много времени. Согласование макетов с Заказчиком прошли также быстро и приступили к разработке. Полноценную систему создали за 4 месяца и сдали ее Заказчику.<br>После приемки помогали Заказчику в подготовке документов на регистрацию системы в Роспатенте, а также на включение системы в реестр отечественного ПО. Спустя 3 месяца с начала эксплуатации системы Заказчик обратился с предложение разработать дополнительные модули (доп функционал) к системе. Время на разработку новых модулей было немного (Заказчик торопил), поэтому проектирование макетов и разработка модулей велась параллельно. Здесь нам помог предыдущий опыт разработки данной системы.</p>
|
||||
<img src="assets/img/intergaz/intergaz04.png" alt="">
|
||||
</div>
|
||||
</div> -->
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { SEOService } from '../../_services/seo.service';
|
||||
import { RequestComponent } from '../../request/request.component';
|
||||
import { ImgCaruselComponent } from '../../img-carusel/img-carusel.component';
|
||||
import { RouterLink } from '@angular/router';
|
||||
|
||||
@Component({
|
||||
selector: 'intergaz',
|
||||
standalone: true,
|
||||
imports: [RequestComponent, ImgCaruselComponent, RouterLink],
|
||||
templateUrl: './intergaz.component.html',
|
||||
styleUrls: ['./intergaz.component.scss']
|
||||
})
|
||||
export class IntergazComponent {
|
||||
|
||||
constructor(private seo:SEOService){}
|
||||
|
||||
images = [
|
||||
'assets/img/intergaz/intergaz01.png',
|
||||
'assets/img/intergaz/intergaz02.png',
|
||||
'assets/img/intergaz/intergaz03.png',
|
||||
'assets/img/intergaz/intergaz04.png',
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<h1>Ключевые проекты</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
​
|
||||
</h5>
|
||||
<request>
|
||||
<button class="btn primary">Напишите нам</button>
|
||||
</request>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card" src="assets/img/projects.jpg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col-4">
|
||||
<h2>Уважение ко всем</h2>
|
||||
</div>
|
||||
<div class="col-8">
|
||||
Мы с уважением относимся к каждому клиенту и к себе. Поэтому мы работаем абсолютно прозрачно, четко укладываемся в оговоренные сроки и внимательно подходим к изучению стоящих перед Вами задач. Наша безупречная репутация сформирована восторженными отзывами клиентов.
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-12 center">
|
||||
<h2>Наши проекты</h2>
|
||||
</div>
|
||||
<div class="projects col-12">
|
||||
<div class="project">
|
||||
<img class="project-logo" src="assets/img/logo_tk23.svg" alt="">
|
||||
<div class="project-type">
|
||||
Интернет-портал
|
||||
</div>
|
||||
<h4 class="project-name">
|
||||
ТК 023
|
||||
</h4>
|
||||
<button class="btn white" routerLink="../projects/tk023">
|
||||
Подробнее
|
||||
</button>
|
||||
</div>
|
||||
<div class="project">
|
||||
<img class="project-logo" src="assets/img/logo_vniigazcert.svg" alt="">
|
||||
<div class="project-type">
|
||||
Корпоративный портал
|
||||
</div>
|
||||
<h4 class="project-name">
|
||||
«ВНИИГАЗ-Сертификат»
|
||||
</h4>
|
||||
<button class="btn white" routerLink="../projects/vniigaz">
|
||||
Подробнее
|
||||
</button>
|
||||
</div>
|
||||
<div class="project">
|
||||
<img class="project-logo" src="assets/img/logo_gazprom.svg" alt="">
|
||||
<div class="project-type">
|
||||
Автоматизированная платформа допуска продукции
|
||||
</div>
|
||||
<h4 class="project-name">
|
||||
ЧУ СЦ «ВНИИГАЗ-Сертификат»
|
||||
</h4>
|
||||
<button class="btn white" routerLink="../projects/scvg">
|
||||
Подробнее
|
||||
</button>
|
||||
</div>
|
||||
<div class="project">
|
||||
<img class="project-logo" src="assets/img/logo_tk465.png" alt="">
|
||||
<div class="project-type">
|
||||
Автоматизированная информационная система
|
||||
</div>
|
||||
<h4 class="project-name">
|
||||
ТК 465
|
||||
</h4>
|
||||
<button class="btn white" routerLink="../projects/tk465">
|
||||
Подробнее
|
||||
</button>
|
||||
</div>
|
||||
<div class="project">
|
||||
<img class="project-logo" src="assets/img/logo_fcns.svg" alt="">
|
||||
<div class="project-type">
|
||||
Корпоративный сайт
|
||||
</div>
|
||||
<h4 class="project-name">
|
||||
ФАУ «ФЦС»
|
||||
</h4>
|
||||
<button class="btn white" routerLink="../projects/faufcs">
|
||||
Подробнее
|
||||
</button>
|
||||
</div>
|
||||
<div class="project">
|
||||
<img class="project-logo" src="assets/img/logo_igc.png" alt="">
|
||||
<div class="project-type">
|
||||
Корпоративная система
|
||||
</div>
|
||||
<h4 class="project-name">
|
||||
ИНТЕРГАЗСЕРТ
|
||||
</h4>
|
||||
<button class="btn white" routerLink="../projects/intergaz">
|
||||
Подробнее
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row bg-light">
|
||||
<reviews></reviews>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
.project{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
height: 416px;
|
||||
padding: 30px;
|
||||
flex: 1 1 0;
|
||||
background-color: #FFF;
|
||||
flex-basis: 35%;
|
||||
.project-logo{
|
||||
width: 238px;
|
||||
height: 136px;
|
||||
object-fit: contain;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.project-type{
|
||||
margin-bottom: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
.project-name{
|
||||
text-align: center;
|
||||
}
|
||||
button{
|
||||
margin-top: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.projects{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
background-color: var(--clr-gr);
|
||||
gap: 1px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1024px){
|
||||
.project{
|
||||
height: auto;
|
||||
padding: 30px 0 60px 0;
|
||||
button{
|
||||
margin-top: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { SEOService } from '../_services/seo.service';
|
||||
import { ReviewsComponent } from '../reviews/reviews.component';
|
||||
import { RequestComponent } from '../request/request.component';
|
||||
import { ImgCaruselComponent } from '../img-carusel/img-carusel.component';
|
||||
import { RouterLink } from '@angular/router';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'projects',
|
||||
standalone: true,
|
||||
imports: [ReviewsComponent, RequestComponent, ImgCaruselComponent, RouterLink],
|
||||
templateUrl: './projects.component.html',
|
||||
styleUrls: ['./projects.component.scss']
|
||||
})
|
||||
|
||||
export class ProjectsComponent {
|
||||
|
||||
constructor(private seo:SEOService){}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<a routerLink="/projects" class="breadcrumbs">
|
||||
<svg>
|
||||
<use href="assets/ico/chevron_left_big_24.svg#ico"></use>
|
||||
</svg>
|
||||
Все проекты
|
||||
</a>
|
||||
<h1>ЧУ СЦ «ВНИИГАЗ-Сертификат»</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
Создание автоматизированной платформы допуска продукции
|
||||
</h5>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card fit-contain" src="assets/img/scvg/scvg-top.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col col-6">
|
||||
<h2>Описание</h2>
|
||||
<div>Процесс допуска труб к эксплуатации в ПАО «Газпром» сопряжен с большим количеством обязательных тестов и процедур. У каждого этапа есть ряд требований и нормативов. Из-за непрозрачности этого процесс затягивался на продолжительные сроки. Появилось понимание, что его можно ускорить и снизить риски, связанные с человеческим фактором с помощью автоматизации.</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Бизнес-задача</h2>
|
||||
<div>Оцифровать процесс оценки продукции поставщиков и создать удобную рабочую среду, единую для всех участников.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-6">
|
||||
<h2>ИТ-задача</h2>
|
||||
<div>Разработать автоматизированную цифровую платформу для удаленного взаимодействия участников работ, рассмотрения проектов правил и тех.стандартов.</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Результат</h2>
|
||||
<div>Система была разработана в срок, в последствии было проведено 4 волны модернизации. На данный момент она является основным ПО для решения вопросов допуска трубной продукции к применению на объектах ПАО «Газпром»</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row wide bg-light">
|
||||
<img-carusel [images]="images"></img-carusel>
|
||||
</div>
|
||||
|
||||
<!-- <div class="row">
|
||||
<div class="col-12">
|
||||
<h2>Как работали</h2>
|
||||
</div>
|
||||
<div class="col-12 longread">
|
||||
<p class="br">Встретились с заказчиком по вопросу создания информационной системы. После встречи сделали презентационные макеты интерфейсов предполагаемой системы, а также видеоролик с демонстрацией работы пользователя с ней. Заказчику все понравилось. Далее помогли Заказчику с написанием корректного ТЗ. После чего подписали договор и приступили к работе. Договор предусматривал сначала создание прототипа системы и, в случае одобрения Заказчиком результатов работ — дальнейшую разработку полноценной версии.</p>
|
||||
<img src="assets/img/scvg/scvg03.png" alt="">
|
||||
<p>В прототипе Заказчику было важно посмотреть, как работают отдельные элементы системы: автоматическое определение геолокации фотографий, загруженных в систему, а также запись и считывание rfid-меток. Для прототипа разработали макеты и согласовали с заказчиком, после чего разработали требуемый пр</p>
|
||||
<p class="br">Пока велась разработка доп модулей, проводили демонстрацию работы системы сотрудникам Минцифры в рамках заявки на включение системы в реестр отечественного ПО. В результате разработали доп модули, синхронизировали их с системой, помогли Заказчику развернуть систему на их сервере и ввести систему в эксплуатацию.<br>В настоящее время занимаемся технической поддержкой системы. </p>
|
||||
<p>Так как основной принцип системы был спроектирован и заложен на этапе прототипа, то подготовка новых макетов не заняла много времени. Согласование макетов с Заказчиком прошли также быстро и приступили к разработке. Полноценную систему создали за 4 месяца и сдали ее Заказчику.<br>После приемки помогали Заказчику в подготовке документов на регистрацию системы в Роспатенте, а также на включение системы в реестр отечественного ПО. Спустя 3 месяца с начала эксплуатации системы Заказчик обратился с предложение разработать дополнительные модули (доп функционал) к системе. Время на разработку новых модулей было немного (Заказчик торопил), поэтому проектирование макетов и разработка модулей велась параллельно. Здесь нам помог предыдущий опыт разработки данной системы.</p>
|
||||
<img src="assets/img/scvg/scvg04.png" alt="">
|
||||
</div>
|
||||
</div> -->
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { SEOService } from '../../_services/seo.service';
|
||||
import { RequestComponent } from '../../request/request.component';
|
||||
import { ImgCaruselComponent } from '../../img-carusel/img-carusel.component';
|
||||
import { RouterLink } from '@angular/router';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-scvg',
|
||||
standalone: true,
|
||||
imports: [RequestComponent, ImgCaruselComponent, RouterLink],
|
||||
templateUrl: './scvg.component.html',
|
||||
styleUrls: ['./scvg.component.scss']
|
||||
})
|
||||
export class ScvgComponent {
|
||||
|
||||
constructor(private seo:SEOService){}
|
||||
|
||||
images = [
|
||||
'assets/img/scvg/scvg01.png',
|
||||
'assets/img/scvg/scvg02.png',
|
||||
'assets/img/scvg/scvg03.png',
|
||||
'assets/img/scvg/scvg04.png',
|
||||
'assets/img/scvg/scvg05.png',
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<a routerLink="/projects" class="breadcrumbs">
|
||||
<svg>
|
||||
<use href="assets/ico/chevron_left_big_24.svg#ico"></use>
|
||||
</svg>
|
||||
Все проекты
|
||||
</a>
|
||||
<h1>ТК-023</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
Создание интернет-портала с АИС
|
||||
</h5>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card fit-contain" src="assets/img/tk023/tk023-top.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col col-6">
|
||||
<h2>Описание</h2>
|
||||
<div>Заказчику необходимо было освободить секретариат от трудозатратной рутинной деятельности. В ходе разработки регулярно добавлялись новые пожелания к логике процессов. На финальном этапе вскрылись критичные изъяны в описанных в ТЗ процессах. Что повлекло глубокую модернизацию уже готового продукта.</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Бизнес-задача</h2>
|
||||
<div>Оцифровка рутинных процессов с возможностью контроля их исполнения и сбора аналитических данных.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-6">
|
||||
<h2>ИТ-задача</h2>
|
||||
<div>Создание удобного облачного решения по автоматизации процессов с разветвленной ролевой моделью, автогенерацией требуемых документов и сбором моментальной статистики</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Результат</h2>
|
||||
<div>Все оговоренные работы были выполнены к указанному сроку. Дальнейшая модернизация была проведена всего за несколько месяцев. Портал стал более функциональным за счет дополнительных возможностей. В настоящее время осуществляется техническая поддержка.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row wide bg-light">
|
||||
<img-carusel [images]="images"></img-carusel>
|
||||
</div>
|
||||
|
||||
<!-- <div class="row">
|
||||
<div class="col-12">
|
||||
<h2>Как работали</h2>
|
||||
</div>
|
||||
<div class="col-12 longread">
|
||||
<p class="br">Встретились с заказчиком по вопросу создания информационной системы. После встречи сделали презентационные макеты интерфейсов предполагаемой системы, а также видеоролик с демонстрацией работы пользователя с ней. Заказчику все понравилось. Далее помогли Заказчику с написанием корректного ТЗ. После чего подписали договор и приступили к работе. Договор предусматривал сначала создание прототипа системы и, в случае одобрения Заказчиком результатов работ — дальнейшую разработку полноценной версии.</p>
|
||||
<img src="assets/img/tk023/tk02303.png" alt="">
|
||||
<p>В прототипе Заказчику было важно посмотреть, как работают отдельные элементы системы: автоматическое определение геолокации фотографий, загруженных в систему, а также запись и считывание rfid-меток. Для прототипа разработали макеты и согласовали с заказчиком, после чего разработали требуемый пр</p>
|
||||
<p class="br">Пока велась разработка доп модулей, проводили демонстрацию работы системы сотрудникам Минцифры в рамках заявки на включение системы в реестр отечественного ПО. В результате разработали доп модули, синхронизировали их с системой, помогли Заказчику развернуть систему на их сервере и ввести систему в эксплуатацию.<br>В настоящее время занимаемся технической поддержкой системы. </p>
|
||||
<p>Так как основной принцип системы был спроектирован и заложен на этапе прототипа, то подготовка новых макетов не заняла много времени. Согласование макетов с Заказчиком прошли также быстро и приступили к разработке. Полноценную систему создали за 4 месяца и сдали ее Заказчику.<br>После приемки помогали Заказчику в подготовке документов на регистрацию системы в Роспатенте, а также на включение системы в реестр отечественного ПО. Спустя 3 месяца с начала эксплуатации системы Заказчик обратился с предложение разработать дополнительные модули (доп функционал) к системе. Время на разработку новых модулей было немного (Заказчик торопил), поэтому проектирование макетов и разработка модулей велась параллельно. Здесь нам помог предыдущий опыт разработки данной системы.</p>
|
||||
<img src="assets/img/tk023/tk02304.png" alt="">
|
||||
</div>
|
||||
</div> -->
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { SEOService } from '../../_services/seo.service';
|
||||
import { RequestComponent } from '../../request/request.component';
|
||||
import { ImgCaruselComponent } from '../../img-carusel/img-carusel.component';
|
||||
import { RouterLink } from '@angular/router';
|
||||
|
||||
@Component({
|
||||
selector: 'tk023',
|
||||
standalone: true,
|
||||
imports: [RequestComponent, ImgCaruselComponent, RouterLink],
|
||||
templateUrl: './tk023.component.html',
|
||||
styleUrls: ['./tk023.component.scss']
|
||||
})
|
||||
export class Tk023Component {
|
||||
|
||||
constructor(private seo:SEOService){}
|
||||
|
||||
images = [
|
||||
'assets/img/tk023/tk02301.png',
|
||||
'assets/img/tk023/tk02302.png',
|
||||
'assets/img/tk023/tk02303.png',
|
||||
'assets/img/tk023/tk02304.png',
|
||||
'assets/img/tk023/tk02305.png',
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<a routerLink="/projects" class="breadcrumbs">
|
||||
<svg>
|
||||
<use href="assets/ico/chevron_left_big_24.svg#ico"></use>
|
||||
</svg>
|
||||
Все проекты
|
||||
</a>
|
||||
<h1>ТК-465</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
Создание Автоматизированной Информационной Системы
|
||||
</h5>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card fit-contain" src="assets/img/tk465/tk465-top.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col col-6">
|
||||
<h2>Описание</h2>
|
||||
<div>Деятельность ТК осуществлялась через стандартный офисный набор ПО и почту. С ростом рабочей нагрузки эффективность сотрудников начала стремительно снижаться, появились ошибки и запутанность процессов. Отсутствовала системность и контроль, что сказывалось на результатах.</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Бизнес-задача</h2>
|
||||
<div>Автоматизация процессов деятельности ТК-465 с повышением доступности актуальной нормативно-правовой базы для участников. Упрощение работы с ТК-465 для всех заинтересованных компаний, в том числе не являющихся членами ТК</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-6">
|
||||
<h2>ИТ-задача</h2>
|
||||
<div>Создание облачной системы с гибкими процессами и сложной ролевой системой</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Результат</h2>
|
||||
<div>Изначально описанные процессы не отражали реального состояния дел. В ходе разработки, совместно с Заказчиком, удалось в точности воспроизвести процессуальный ход внутри системы, уложившись в оговоренный срок.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row wide bg-light">
|
||||
<img-carusel [images]="images"></img-carusel>
|
||||
</div>
|
||||
|
||||
<!-- <div class="row">
|
||||
<div class="col-12">
|
||||
<h2>Как работали</h2>
|
||||
</div>
|
||||
<div class="col-12 longread">
|
||||
<p class="br">Встретились с заказчиком по вопросу создания информационной системы. После встречи сделали презентационные макеты интерфейсов предполагаемой системы, а также видеоролик с демонстрацией работы пользователя с ней. Заказчику все понравилось. Далее помогли Заказчику с написанием корректного ТЗ. После чего подписали договор и приступили к работе. Договор предусматривал сначала создание прототипа системы и, в случае одобрения Заказчиком результатов работ — дальнейшую разработку полноценной версии.</p>
|
||||
<img src="assets/img/tk465/tk46503.png" alt="">
|
||||
<p>В прототипе Заказчику было важно посмотреть, как работают отдельные элементы системы: автоматическое определение геолокации фотографий, загруженных в систему, а также запись и считывание rfid-меток. Для прототипа разработали макеты и согласовали с заказчиком, после чего разработали требуемый пр</p>
|
||||
<p class="br">Пока велась разработка доп модулей, проводили демонстрацию работы системы сотрудникам Минцифры в рамках заявки на включение системы в реестр отечественного ПО. В результате разработали доп модули, синхронизировали их с системой, помогли Заказчику развернуть систему на их сервере и ввести систему в эксплуатацию.<br>В настоящее время занимаемся технической поддержкой системы. </p>
|
||||
<p>Так как основной принцип системы был спроектирован и заложен на этапе прототипа, то подготовка новых макетов не заняла много времени. Согласование макетов с Заказчиком прошли также быстро и приступили к разработке. Полноценную систему создали за 4 месяца и сдали ее Заказчику.<br>После приемки помогали Заказчику в подготовке документов на регистрацию системы в Роспатенте, а также на включение системы в реестр отечественного ПО. Спустя 3 месяца с начала эксплуатации системы Заказчик обратился с предложение разработать дополнительные модули (доп функционал) к системе. Время на разработку новых модулей было немного (Заказчик торопил), поэтому проектирование макетов и разработка модулей велась параллельно. Здесь нам помог предыдущий опыт разработки данной системы.</p>
|
||||
<img src="assets/img/tk465/tk46504.png" alt="">
|
||||
</div>
|
||||
</div> -->
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { SEOService } from '../../_services/seo.service';
|
||||
import { RequestComponent } from '../../request/request.component';
|
||||
import { ImgCaruselComponent } from '../../img-carusel/img-carusel.component';
|
||||
import { RouterLink } from '@angular/router';
|
||||
|
||||
@Component({
|
||||
selector: 'app-tk465',
|
||||
standalone: true,
|
||||
imports: [RequestComponent, ImgCaruselComponent, RouterLink],
|
||||
templateUrl: './tk465.component.html',
|
||||
styleUrls: ['./tk465.component.scss']
|
||||
})
|
||||
export class Tk465Component {
|
||||
|
||||
constructor(private seo:SEOService){}
|
||||
|
||||
images = [
|
||||
'assets/img/tk465/tk46501.png',
|
||||
'assets/img/tk465/tk46502.png',
|
||||
'assets/img/tk465/tk46503.png',
|
||||
'assets/img/tk465/tk46504.png',
|
||||
'assets/img/tk465/tk46505.png',
|
||||
]
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<a routerLink="/projects" class="breadcrumbs">
|
||||
<svg>
|
||||
<use href="assets/ico/chevron_left_big_24.svg#ico"></use>
|
||||
</svg>
|
||||
Все проекты
|
||||
</a>
|
||||
<h1>ВНИИГАЗ-Сертификат</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
Создание корпоративного портала
|
||||
</h5>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card fit-contain" src="assets/img/vniigaz/vniigaz-top.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col col-6">
|
||||
<h2>Описание</h2>
|
||||
<div>Из-за колоссальных объемов документооборота весь процесс терял прозрачность и регулярно допускались человеческие ошибки, способные привести к серьезным последствиям. А отсутствие возможности отследить их даже в ретроспективе мешало исправлению злокачественных элементов процесса.</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Бизнес-задача</h2>
|
||||
<div>Предоставить удобный доступ к данным из реестров для всех участников процесса, актуализировать имеющиеся данные и отслеживать сроки истечения документов.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col col-6">
|
||||
<h2>ИТ-задача</h2>
|
||||
<div>Создание облачного решения для ведения реестров с моментальным сбором статистики и отслеживанием.</div>
|
||||
</div>
|
||||
<div class="col col-6">
|
||||
<h2>Результат</h2>
|
||||
<div>Проект был реализован за 4 месяца, с учетом дополнительных пожеланий заказчика. При переходе на систему мы конвертировали более 50 тысяч записей под новую структуру хранилища с более широким функционалом. Появились возможности многоуровневой системы фильтров и сквозной аналитики процессов.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row wide bg-light">
|
||||
<img-carusel [images]="images"></img-carusel>
|
||||
</div>
|
||||
<!--
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2>Как работали</h2>
|
||||
</div>
|
||||
<div class="col-12 longread">
|
||||
<p class="br">Встретились с заказчиком по вопросу создания информационной системы. После встречи сделали презентационные макеты интерфейсов предполагаемой системы, а также видеоролик с демонстрацией работы пользователя с ней. Заказчику все понравилось. Далее помогли Заказчику с написанием корректного ТЗ. После чего подписали договор и приступили к работе. Договор предусматривал сначала создание прототипа системы и, в случае одобрения Заказчиком результатов работ — дальнейшую разработку полноценной версии.</p>
|
||||
<img src="assets/img/vniigaz/vniigaz03.png" alt="">
|
||||
<p>В прототипе Заказчику было важно посмотреть, как работают отдельные элементы системы: автоматическое определение геолокации фотографий, загруженных в систему, а также запись и считывание rfid-меток. Для прототипа разработали макеты и согласовали с заказчиком, после чего разработали требуемый пр</p>
|
||||
<p class="br">Пока велась разработка доп модулей, проводили демонстрацию работы системы сотрудникам Минцифры в рамках заявки на включение системы в реестр отечественного ПО. В результате разработали доп модули, синхронизировали их с системой, помогли Заказчику развернуть систему на их сервере и ввести систему в эксплуатацию.<br>В настоящее время занимаемся технической поддержкой системы. </p>
|
||||
<p>Так как основной принцип системы был спроектирован и заложен на этапе прототипа, то подготовка новых макетов не заняла много времени. Согласование макетов с Заказчиком прошли также быстро и приступили к разработке. Полноценную систему создали за 4 месяца и сдали ее Заказчику.<br>После приемки помогали Заказчику в подготовке документов на регистрацию системы в Роспатенте, а также на включение системы в реестр отечественного ПО. Спустя 3 месяца с начала эксплуатации системы Заказчик обратился с предложение разработать дополнительные модули (доп функционал) к системе. Время на разработку новых модулей было немного (Заказчик торопил), поэтому проектирование макетов и разработка модулей велась параллельно. Здесь нам помог предыдущий опыт разработки данной системы.</p>
|
||||
<img src="assets/img/vniigaz/vniigaz04.png" alt="">
|
||||
</div>
|
||||
</div> -->
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { SEOService } from '../../_services/seo.service';
|
||||
import { RequestComponent } from '../../request/request.component';
|
||||
import { ImgCaruselComponent } from '../../img-carusel/img-carusel.component';
|
||||
import { RouterLink } from '@angular/router';
|
||||
|
||||
@Component({
|
||||
selector: 'vniigaz',
|
||||
standalone: true,
|
||||
imports: [RequestComponent, ImgCaruselComponent, RouterLink],
|
||||
templateUrl: './vniigaz.component.html',
|
||||
styleUrls: ['./vniigaz.component.scss']
|
||||
})
|
||||
export class VniigazComponent {
|
||||
|
||||
constructor(private seo:SEOService){}
|
||||
|
||||
images = [
|
||||
'assets/img/vniigaz/vniigaz01.png',
|
||||
'assets/img/vniigaz/vniigaz02.png',
|
||||
'assets/img/vniigaz/vniigaz03.png',
|
||||
'assets/img/vniigaz/vniigaz04.png',
|
||||
]
|
||||
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import { NgFor, NgIf } from '@angular/common';
|
||||
import { Component, CUSTOM_ELEMENTS_SCHEMA, ElementRef, ViewChild } from '@angular/core';
|
||||
import { Component, CUSTOM_ELEMENTS_SCHEMA, ViewChild } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'reviews',
|
||||
|
|
|
|||
|
|
@ -0,0 +1,99 @@
|
|||
<div class="row jumb">
|
||||
<div class="col-6">
|
||||
<h1>Разработка информационно нагруженных сайтов</h1>
|
||||
<h5 class="jumb-slogan">
|
||||
Удобный и безопасный сайт для работы с массивными данными и документами
|
||||
</h5>
|
||||
<request>
|
||||
<button class="btn primary">Напишите нам</button>
|
||||
</request>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<img class="jumb-card" src="assets/img/sites.jpg" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row anchor-menu">
|
||||
<a (click)="anchorRouting('about')" class="anchor-menu-item">О продукте</a>
|
||||
<a (click)="anchorRouting('advantage')" class="anchor-menu-item">Особенности</a>
|
||||
<a (click)="anchorRouting('function')" class="anchor-menu-item">Функционал</a>
|
||||
<a (click)="anchorRouting('reply')" class="anchor-menu-item">Обратная связь</a>
|
||||
</div>
|
||||
|
||||
<a id="about"></a>
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col col-6">
|
||||
<h2>О продукте</h2>
|
||||
<div> <div>Разрабатываем сайты на собственной платформе, способные успешно работать с большим количеством информации и документов. <br/><br/>
|
||||
Все данные хранятся в безопасности на вашем сервере, функционал легко адаптируется под Ваши задачи, а простота работы с контентом позволяет размещать и редактировать его, без привлечения ИТ-специалистов. </div></div>
|
||||
</div>
|
||||
<div class="col-6 col">
|
||||
<h2>Для кого</h2>
|
||||
<ul>
|
||||
<li>Органы государственной власти федерального, регионального и муниципального уровней</li>
|
||||
<li>Межведомственные организации</li>
|
||||
<li>Крупные и средние коммерческие компании</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row wide">
|
||||
<img-carusel [images]="images"></img-carusel>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<a id="advantage"></a>
|
||||
|
||||
<div class="row bg-light">
|
||||
<div class="col-6 advantage-left">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="col-6 col">
|
||||
<h2>Особенности платформы</h2>
|
||||
<ul>
|
||||
<li>Возможность добавить любой стандартный и нестандартный функционал напрямую в сайт</li>
|
||||
<li>Автоматическая стилизация размещаемого контента согласно вашему брендбуку</li>
|
||||
<li>Простой и понятный интерфейс. Не требуется привлечение ИТ-специалиста для редактирования</li>
|
||||
<li>Многоуровневая ролевая система с настраиваемыми правилами для каждой роли</li>
|
||||
<li>Возможность «заморозки» сайта с сохранением всех данных </li>
|
||||
<li>Локальное хранение всех данных на ваших серверах</li>
|
||||
<li>Отсутствие готовых решений по взлому сайта злоумышлениками</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<a id="function"></a>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6 col">
|
||||
<h2>Функционал</h2>
|
||||
<ul>
|
||||
<li>Встроенная работа с реестрами, документами, массивами данных</li>
|
||||
<li>Удобное создание локалей многоязычных сайтов</li>
|
||||
<li>Тонкая настройка учетных записей пользователей</li>
|
||||
<li>Система обработки входящих заявок</li>
|
||||
<li>Гибкий функционал с любым дизайном</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-6 solution-right">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row bg-light">
|
||||
<reviews></reviews>
|
||||
</div>
|
||||
|
||||
|
||||
<a id="reply"></a>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
|
||||
|
||||
.advantage-left{
|
||||
border-radius: 16px;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-image: url("/assets/img/sites-features.jpg");
|
||||
aspect-ratio: 582 / 336;
|
||||
align-self: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
gap: 30px;
|
||||
>div{
|
||||
width: calc(50% - 15px);
|
||||
box-shadow: 0 0 0 30px var(--clr-gr-lt);
|
||||
border-radius: 16px;
|
||||
aspect-ratio: 1;
|
||||
&:first-child, &:last-child{
|
||||
width: auto;
|
||||
margin-bottom: auto;
|
||||
background-color: var(--clr-gr-lt);
|
||||
aspect-ratio: none;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.solution-right{
|
||||
border-radius: 16px;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
background-image: url("/assets/img/sites-functions.jpg");
|
||||
aspect-ratio: 582 / 336;
|
||||
align-self: center;
|
||||
display: flex;
|
||||
flex-direction: column-reverse;
|
||||
flex-wrap: wrap;
|
||||
gap: 30px;
|
||||
order: -1;
|
||||
>div{
|
||||
width: calc(50% - 15px);
|
||||
box-shadow: 0 0 0 30px #FFF;
|
||||
border-radius: 16px;
|
||||
aspect-ratio: 1;
|
||||
&:first-child, &:last-child{
|
||||
width: auto;
|
||||
margin-bottom: auto;
|
||||
background-color: #FFF;
|
||||
aspect-ratio: none;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[id]{
|
||||
position: static;
|
||||
margin-block: -80px 80px;
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
import { Component } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { SEOService } from '../_services/seo.service';
|
||||
import { ReviewsComponent } from '../reviews/reviews.component';
|
||||
import { RequestComponent } from '../request/request.component';
|
||||
import { ImgCaruselComponent } from '../img-carusel/img-carusel.component';
|
||||
|
||||
@Component({
|
||||
selector: 'sites',
|
||||
standalone: true,
|
||||
imports: [ReviewsComponent, RequestComponent, ImgCaruselComponent],
|
||||
templateUrl: './sites.component.html',
|
||||
styleUrls: ['./sites.component.scss']
|
||||
})
|
||||
export class SitesComponent {
|
||||
|
||||
constructor(
|
||||
private router:Router, private seo:SEOService
|
||||
){};
|
||||
|
||||
anchor?:string;
|
||||
|
||||
anchorRouting(anchor:string){
|
||||
if(anchor==this.anchor){
|
||||
this.router.navigate([`/sites`]).then(
|
||||
()=>this.router.navigate([`/sites`], { fragment: anchor })
|
||||
)
|
||||
}else{
|
||||
this.anchor = anchor;
|
||||
this.router.navigate([`/sites`], { fragment: anchor })
|
||||
}
|
||||
}
|
||||
|
||||
images = [
|
||||
'assets/img/carusel/carusel-05.jpg',
|
||||
'assets/img/carusel/carusel-06.jpg',
|
||||
'assets/img/carusel/carusel-07.jpg',
|
||||
'assets/img/carusel/carusel-08.jpg',
|
||||
'assets/img/carusel/carusel-09.jpg',
|
||||
]
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue