Technologies
We have been creating websites and applications using PHP frameworks, Java, C#, Python, for over 7 years. We know how to execute a project without disrupting existing business processes.
Typical Composition: project manager, analyst, technical writer, 2-3 developers, art director + designer, and 1-2 QA specialists.
Project Manager— the central link of the project: remembers everything, is responsible for everything, and stays with you during further project development.
As usual, all this is supported by top management: technical and account directors.
Business Analysis:
We determine the goals and objectives of business clients, identify customer pain points. We conduct a series of interviews, form a project vision and a high-level development plan.
Competitive analysis and benchmarking are key parts of the research: we assess the strengths and weaknesses of the system under study and develop recommendations for its development strategy.
User Analysis:
We define the target audience, identify priority segments. We gather user requirements and analyze their pain points through in-depth interviews and surveys.
We analyze web analytics systems and the technical state of the site for interface and functionality errors, compiling a list of recommendations.
We interview the client's working group, gather briefs, and communicate with the client's IT department.
From this work, we develop aTechnical Specification: a document that will be used to deliver the website. We also create visualizations — drawing interactive prototypes of the future website.
We write a specific document: the test program and methodology. This is used to deliver the system. We also create automated tests (Selenium) and then use Allure for visual reports on their execution.
Load testing is conducted on the Client's server and other services.
After delivery, we support the project using Jenkins for continuous integration and GIT for version control.
While writing the technical specification, we create a block diagram of the website with dependencies: this allows for step-by-step programming and parallel tasks for developers.
Using a version control system, multiple developers can work on a project at once, and their changes can be easily tracked. The same technology is applied in further support of the website.
During project delivery, we use both automated and manual testing to cover all scenarios.
By adhering to internal standards, we maintain high product quality.
This is why we offer a lifetime warranty on our code. Additionally, our projects have not been hacked or suffered data breaches in all 7 years of our operation.
Below are some (partially) regulations from our internal documents.
Always provide estimates for tasks
If a task already has an estimate from another developer, re-estimate if you disagree with it
If you're working on a task with someone else's estimate, you're agreeing with it.
Development is done strictly in our gitlab
Commit and push daily work results to the repository every day. There should be no situations where you lose several days' worth of work due to reasons like 'the computer broke,' 'I was moving and forgot to copy,' etc.
Submit merge requests to your team lead or senior frontend developer for review.
Chrome, Firefox, Safari, Edge
The exact browser versions, as well as additional versions, should be requested from the manager before performing the task if they are not specified in the technical specification.
By default, support for the last two versions of browsers should be ensured.
The site should be responsive
Logos should be in SVG format
On production and test environments: Regular images should have webp versions, and their size should be appropriate for the container (picture tag)
All links should respond to :hover, :active, and :focus
When creating static pages (e.g., News details), the majority of static elements should be styled. Example: links, ul/ol lists, tables, headings.
When creating static pages, images should not be forcibly stretched to full width. Add styles to img: max-width: 100%, display: block, margin: 0 auto, padding: 10px, so images retain their natural size but do not exceed the size of the static page container.
Textarea resize should not break the layout
The footer should 'stick' to the bottom of the browser when there is no content or only a small amount of content
Slider pagination should not break when there are many slides. It should move or go to the side. Ask the manager and designer how it should be for the current project
Form validation should work
The phone field should use a mask
The form 'submit' button should be disabled on the first click to avoid multiple submissions. It should be re-enabled after receiving a response from the server.
Display a message about successful/unsuccessful form submission
All interface elements that update their data without reloading the page should have a preloader
All lists (Requests, users, etc.) should have pagination. If it's an SPA, the API should provide data considering pagination
When creating a live filter (a filter working without pressing the apply button), use request interruption
Information on project assembly and complex functionality should be described in the README.md file of the project
Create a pop-up on the site if cookies are disabled in the client's browser. This can be checked with JS through navigator.cookieEnabled. The message in the pop-up should say, 'To ensure the site works correctly, cookies need to be enabled in the browser.'
Code should be written according to the project's ESLint configuration
Code should be modular. Module names should reflect the content's meaning
Libraries are installed via yarn
Use swiper for creating sliders
If the project works with an API, domain addresses should be placed in environment variables. The .env file.
The .env file should not be under git
Create a .env.example file listing the required environment variables. Variables should have a description
Form submission should work via FormData
BEM
Code should be modular. Module names should reflect the content's meaning
Product catalog filter settings should be displayed in the URL with GET parameters
Markup must pass W3C validation
Semantic markup. At a minimum, titles, descriptions, and h1 headings.
Images must have alt attributes
Attribute names and values (class="detail-page", id="news-list", etc.) should be in kebab-case style
/upload/ /upload /local/vendor/ /local/vendor /web.config /.htaccess /robots.txt /*.xml *.swp *.log *.zip *.tar *.rar *.gzIf the entire folder is placed in .gitignore, but a specific template needs to be worked on, it can be returned to git using: !templates/learning_10_0_0/
"54361-1 import elements to offers iblock"
Where
54361-1 is the task number and the item number separated by a hyphen.Verification (examination) of operational documentation from the vendor, community for information on support and updates, including vulnerability fixes.
For user identification when accessing, each user must be assigned a unique personal identifier.
User access must be implemented through password authentication.
Feedback protection when entering authentication information must be ensured.
The local password policy must meet the following requirements:
password complexity policy;
password history retention;
password expiration settings;
the ability to change the password upon first login;
the ability for users to independently change their password
Integration capability with an identity management system.
User authorization for access should only occur after identification and authentication procedures have been completed.
Support for multi-factor authentication mechanisms.
Access Management.
registration of the date and time of user login/logout attempts;
registration of component start/stop times;
registration of changes in user privileges;
registration of configuration changes;
registration of administrator actions;
registration of user actions
we'll estimate the costs and provide architectural recommendations.