Do you want a reliable, smooth-running app solution for your startup but fear you exceed your budget solving unexpected issues? IT Craft has prepared a framework just for you. Project Booster Toolkit. Use it as the core for your project and lessen the degree of uncertainty.
Even though each project has its special features and unique characteristics, it still shares common principles with other projects. This makes it possible to boost development by leveraging from existing experience.
What is Project Booster Toolkit?
Project Booster Toolkit is a set of reliable solutions IT Craft developers use to build software for our customer. This helps solve the biggest challenge in today’s IT business market: delivering IT systems to market faster while consistently retaining high quality. The toolkit contains a set of already-prepared building blocks for a new system, i.e., as integral parts of a system’s source code. The toolkit also includes predefined, proven solutions for automated testing; this ensures components and system deployment using continuous integration and delivery approaches.
You choose the blocks your product absolutely needs while IT Craft merges them into a seamless app, then tests and delivers to target platforms. No hassles, no headaches, all promises kept.
List of components that are already implemented and can be used, include:
Onion Architecture. The most-advanced and scalable, multi-tier architecture for creating complex, multi-functional web solutions.
JWT-Token Authentication Service. Modern and currently one of the most secure authentication and authorization methods because of its structured encrypted format.
OAuth 2.0 Authorization Service. Authorization through third-party services (e.g., Facebook, Google, and Twitter).
User Registration Module. Bundled services that implement the most popular features for user interaction:
- User Registration/Login/Logout. Registration functionality (with choice of role), log in / log out, Remember Me.
- Set/Reset User Password. Setting / Resetting a password backed up by the possibility of sending a confirmation email with customizable tracking links.
- User – Roles – Privileges. Functionality for adding multiple roles and privileges. Each role can have many privileges. Each user can have several roles plus other privileges not attached to specific roles.
- Social Login/ Social Connect. System login using third-party social networks (Facebook, Google, Twitter, etc.). Acquiring users through social networks and converting them to regular app users.
- Social Data Integration. Migrating user data from social networks to a regular account.
- Two-factor authentication. Authentication method using an additional step to identify a user through a mobile token.
- User Invitation. Inviting potential system users via existing users
- My Account. User profile management.
System Settings Module
- System Settings. Provide users with a centralized and convenient way to configure application settings. These parameters are determined based on client needs.
- User Settings. Provide centralized access to specific user settings that can either override or supplement system settings.
Data Caching Module. Speed up data access by avoiding sending direct requests to the data source.
- Simple Memory Cache. Cache data in a server memory.
- Redis Caching. Caching based on Redis cluster failover.
Email Notification Module. Module for sending emails. Email creation is based on email templates stored in the data source used by the application.
- Custom SMTP Sender. Send emails with attachments through a personal SMTP server and use as a base for a templates engine. Use as an SMTP server for services such as Gmail, Amazon, etc.
- MailGun Sender. Send emails through a popular service (https://www.mailgun.com/). This service supports a number of important functions such as mass mailing.
Content Service. Creates limitless, simple HTML pages (not containing business logic) to be used by the app.
Localization Module. Supports multilanguage applications. Depending on system requirements and complexity, the module allows content localization using the most popular approaches:
- Localization Service by Resource files. Localization based on Resource files.
- Localization Service by XML files. Localization based on XML files.
- Localization Service by Database. Database-based localization.
Logging Module. Module provides process for logging system activities with ability to set maximum logging history limit. The system module is necessary for detecting errors and potential vulnerabilities in the system.
- Logging Service (TXT). Service allows logging data on a server as readable text files.
- Logging Service (Database). Service allows logging data into a database.
Job Scheduler Module. Schedule tasks. Module makes it possible to run background processes according to a specified schedule.
Zendesk Integration. Integration with popular customer support service https://www.zendesk.com/.
Automated testing functionality in Project Booster Toolkit contains the following solutions:
Database manager. Simplifies work with MS SQL and MySql database systems while creating autotests that check database-related routines.
- Creating and maintaining connection.
- Mapping/Convert query results to the objects.
- SQL scripts generation based on input parameters.
Web API client. Functionality to work with API services of the tested solution.
- Create and send HTTP requests to the API.
- Get and analyze responses.
- Convert response to JSON, XML, HTML objects.
- Manipulate cookies and other HTTP headers.
- Log request/response information (URL, headers, body, etc.).
Logging and soft check. Soft checking and logging input/output information of each test.
- Do several assets (verifications) in the same test case without interrupting it.
- Logging input test data and results. This allows easily reproducing test cases.
Integration of UI and API tests in one application. This approach allows all tests in the same application while having the ability to prioritize execution of tests.
- Mark and categorize API and UI tests.
- Prioritize tests.
- Set up a test run sequence.
- Fine-tune test preconditions using API or/and DB.
Test runner. This functionality helps manage tests.
- Create and save list of test cases.
- Configure test application (connection to DB, base URL, etc.).
- Run tests in several phases to reduce false and failed test results.
- Save and display test results in a readable-for-humans format.
Multi-threaded test run. This approach allows the system to implement several queues of test cases in parallel to reduce total time of testing process.
- Run tests in parallel mode using SeleniumGrid.
- Run tests in parallel mode using Selenoid.
- Run tests using Docker.
Selenium utils. This functionality speeds up creation of custom UI automated testing for web applications.
- Smart element waiter.
- Framework to work with Page Object.
- Tools to work with complex web elements.
CI/CD practices allow accelerating development and deployment process:
Local Environment. With tools like Vagrant and Docker, developers are able to deploy a sandbox environment on any machine they need. This environment is reproducible, so it helps develop projects quickly and easily.
Sandbox Environment. The process of creating a sandbox for testing is automated. This allows deploying and testing project changes in an environment very close to production. The environment is isolated for each task, so teams of developers do not need to resolve conflicts when modifying a sandbox.
Staging Environment. This environment is almost the same as production, but available only for developers. Thus, it increases chances of bug detection before changes are checked in to main code and go live. When a task is done, the only thing developers need to do is to push changes to a Staging branch. The next steps are automated: TeamCity pipeline pulls changes, builds, deploys and tests them through automated testing.
Production. When a project has been deployed and tested in staging, it is ready for production. Production deployment is also automated, including all of the following steps:
- Pull, build, and deploy code.
- Execute SQL-scripts.
- Cache invalidation.
Production deployment is implemented with Blue-green deployment technique (deploying nodes one by one). This technique can eliminate downtime due to application deployment.
Here is how you benefit from startup development with IT Craft:
While an MVP contains a limited set of “can-be-standardized” elements, Startup Booster Toolkit makes it possible to significantly decrease time-to-market for your startup idea saving resources on basic operations:
- Project management – internal communication takes less time
- Business analysis – more-precise estimates are possible
- Coding – integration of pre-made building blocks into an app takes less time than inventing them anew every time
- QA and testing – minimum manual testing; maximum automated testing because the building blocks have been already pre-tested
- Delivery – timely software delivery using CI / CD approaches.
Still have a question? Want to find out how it is going to work for your startup?