Expert Overview
Nacional Potosí vs. San Antonio is set to be a thrilling encounter on September 13, 2025, at 21:30. With Nacional Potosí’s home advantage and a strong average of 3.44 total goals per match, there’s a compelling case for a high-scoring game. The team has demonstrated a consistent ability to score, averaging 2.87 goals while conceding 3.17, suggesting an open and potentially volatile match.
Nacional Potosi
San Antonio Bulo Bulo
Predictions:
Market | Prediction | Odd | Result |
---|---|---|---|
Over 1.5 Goals | 92.80% | 1.13 Make Bet | |
Both Teams Not To Score In 1st Half | 83.10% | 1.25 Make Bet | |
Away Team Not To Score In 1st Half | 75.20% | Make Bet | |
Away Team To Score In 2nd Half | 76.20% | Make Bet | |
Over 0.5 Goals HT | 69.60% | 1.25 Make Bet | |
Both Teams Not To Score In 2nd Half | 69.80% | 1.44 Make Bet | |
Last Goal 73+ Minutes | 63.90% | 1.83 Make Bet | |
Both Teams To Score | 59.20% | 1.57 Make Bet | |
Sum of Goals 2 or 3 | 60.00% | 2.20 Make Bet | |
Goal In Last 15 Minutes | 61.70% | Make Bet | |
Home Team To Score In 2nd Half | 58.60% | Make Bet | |
Goal In Last 10 Minutes | 55.40% | Make Bet | |
Home Team To Score In 1st Half | 53.30% | Make Bet | |
Avg. Total Goals | 3.44% | Make Bet | |
Avg. Goals Scored | 2.87% | Make Bet | |
Avg. Conceded Goals | 3.17% | Make Bet | |
Red Cards | 1.42% | Make Bet |
Betting Predictions
Goals Prediction
- Over 1.5 Goals: With odds at 92.80, this prediction aligns with the teams’ historical goal-scoring tendencies, making it a favorable bet.
- Avg. Total Goals: Expected to be around 3.44, reinforcing the likelihood of a goal-rich match.
- Sum of Goals 2 or 3: With odds at 60.00, this reflects the typical range of goals seen in recent encounters.
- Goal In Last 15 Minutes: Odds at 61.70 suggest a possibility of late-game action.
- Goal In Last 10 Minutes: At odds of 55.40, this highlights the potential for last-minute drama.
Half-Time Predictions
- Over 0.5 Goals HT: Odds at 69.60 indicate an expectation of early goals.
- Home Team To Score In 1st Half: With odds at 53.30, it suggests Nacional Potosí could take an early lead.
- Away Team Not To Score In 1st Half: Odds at 75.20 highlight the potential for San Antonio to remain scoreless initially.
- Both Teams Not To Score In 1st Half: Odds at 83.10 suggest some caution regarding early goals from both sides.
- Last Goal After 73 Minutes: At odds of 63.90, indicating a potential late-game decider.
- Both Teams Not To Score In 2nd Half: Odds at 69.80 reflect the unpredictability of second-half performances.
- Away Team To Score In 2nd Half: Odds at 76.20 show San Antonio’s potential to make a comeback.
- Home Team To Score In 2nd Half: With odds at 58.60, Nacional Potosí might strengthen their lead in the latter stages.
- Both Teams To Score: Odds at 59.20 suggest that both teams are likely to find the back of the net.
Cards Prediction
minimartinc/ksl-diploma/src/app/pipes/limit-string.pipe.ts
import { Pipe, PipeTransform } from ‘@angular/core’;
@Pipe({
name: ‘limitString’
})
export class LimitStringPipe implements PipeTransform {
public transform(value: string, limit: number): string {
if (!value || value.length <= limit) {
return value;
}
return `${value.substring(0, limit – (limit * .05))}…`;
}
}
@import ‘../../styles/mixins’;
:host {
display: flex;
flex-direction: column;
}
.nav-bar {
display: flex;
align-items: center;
padding-top: $nav-bar-padding-top;
padding-bottom: $nav-bar-padding-bottom;
@include media-breakpoint-up(md) {
padding-top: $nav-bar-padding-top-md;
padding-bottom: $nav-bar-padding-bottom-md;
}
&__logo {
width: $logo-width;
height: $logo-height;
img {
width: inherit;
height: inherit;
object-fit: contain;
}
margin-right: auto;
@include media-breakpoint-up(md) {
margin-right: $nav-bar-logo-margin-right-md;
}
}
button {
color: $white-color;
svg {
width: $icon-size-xs;
height: $icon-size-xs;
fill: currentColor;
margin-right: $icon-margin-right-xs;
path {
stroke-width: $icon-stroke-width-xs;
stroke-linecap: round;
stroke-linejoin: round;
}
}
font-size: $font-size-base-sm;
line-height: $line-height-base-sm;
border-radius: $border-radius-sm;
padding-left: $padding-left-xs;
padding-right: $padding-right-xs;
background-color: rgba($white-color, .4);
outline-color: transparent;
cursor: pointer;
user-select: none;
position: relative;
z-index: z(‘button’);
box-shadow:
inset -1px -1px rgba($black-color, .15),
inset -1px -1px rgba($white-color, .4),
inset -1px -1px rgba($white-color, .25);
transition-property:
background-color,
box-shadow,
color,
border-color,
outline-color,
fill,
stroke,
stroke-width,
stroke-linecap,
stroke-linejoin;
transition-duration:
.2s,
.2s,
.2s,
.2s,
.2s,
.15s,
.15s,
.15s,
.15s,
.15s;
transition-timing-function:
ease-in-out,
ease-in-out,
ease-in-out,
ease-in-out,
ease-in-out,
ease-in-out,
ease-in-out,
ease-in-out,
ease-in-out,
ease-in-out;
&:hover {
background-color: rgba($white-color, .6);
box-shadow:
inset -1px -1px rgba($black-color, .25),
inset -1px -1px rgba($white-color, .6),
inset -1px -1px rgba($white-color, .45);
}
&:active {
background-color: rgba($white-color, .8);
box-shadow:
inset -1px -1px rgba($black-color, .4),
inset -1px -1px rgba($white-color, .8),
inset -1px -1px rgba($white-color, .65);
}
&:focus-visible {
outline-style: solid;
outline-width: $outline-width-xs;
outline-offset:
calc(#{$outline-offset-xs} + #{$icon-size-xs});
border-radius:
calc(#{$border-radius-sm} + #{$outline-width-xs});
background-color:
mix(
lighten($primary-brand-color-darken-50-percent, $outline-background-lighten-percentage),
color-yiq(rgba($primary-brand-color-darken-50-percent)),
mix-percent
);
box-shadow:
inset -1px -1px rgba($black-color, .25),
inset -1px -1px rgba($white-color, .6),
inset -1px -1px rgba($white-color, .45),
calc(#{$outline-offset-xs} + #{$icon-size-xs}) calc(#{$outline-offset-xs} + #{$icon-size-xs}) mix(
lighten($primary-brand-color-darken-50-percent, $outline-background-lighten-percentage),
color-yiq(rgba($primary-brand-color-darken-50-percent)),
mix-percent
);
svg {
fill:
mix(
lighten($primary-brand-color-darken-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-1000-percent, $outline-background-lighten-percentage * (100 / (100 + (100 * ($outline-background-darken-percentage / (100 + ($outline-background-darken-percentage * ($outline-background-darken-percentage / (100 + ($outline-background-darken-percentage * ($outline-background-darken-percentage / (100 + ($outline-background-darken-percentage * ($outline-background-darken-percentage / (100 + ($outline-background-darken-percentage * ($outline-background-darken-percentage / (100 + ($outline-background-darken-percentage * ($outline-background-darken-percentage / (100 + ($outline-background-darken-percentage * ($outline-background-darken-percentage))))))))))))))))))))))),
color-yiq(rgba(lighten($primary-brand-color-darken-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-50-percent-lighten-1000-percent))),
mix-mode
);
path {
stroke:
mix(
darkenate(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(lightene(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate(darkenate($primary-brand-color)))))))))))))))))))))))))))))))), $primary-brand-outline-stroke-width), darkenen-stroke-step)), darkenen-stroke-step)), darkenen-stroke-step)), darkenen-stroke-step)), darkenen-stroke-step)), darkenen-stroke-step)), darkenen-stroke-step), lighten(strokewidth-pct), mix-mode);
}
}
}
@include media-breakpoint-up(md) {
svg {
width: $icon-size-sm;
height:$icon-size-sm;
margin-right: $icon-margin-right-sm;
}
font-size:$font-size-base-sm;
line-height:$line-height-base-sm;
padding-left:$padding-left-sm;
padding-right:$padding-right-sm;
&:focus-visible {
outline-offset:
calc(#{$outline-offset-sm} + #{$icon-size-sm});
border-radius:
calc(#{$border-radius-md} + #{$outline-width-sm});
svg {
fill:
mix(
lightense darkenate(
lightense darkenate(
lightense darkenate(
lightense darkenate(
lightense darkenate(
lightense darkenate(
lightense darkenate(
lightense darkenate(
lightense darkenate(
lightense darkenate(
lightense darkenate(
lightense darkenate(
darkenetize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize daretinize (
darkeretinize)
),
daretoffset)
),
daretoffset)
),
daretoffset)
),
daretoffset)
),
daretoffset)
),
lighten(strokewidth-pct),
mix-mode
);
path {
stroke:
mix(
darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen darkeretizen lighteretizen lighteretizen lighteretizen lighteretizen lighteretizen lighteretizen lighteretizen lighteretizentdarkeretenizeretenizeretenizeretenizeretenizeretenizeretenizeretenizeretenizeretenizeretenizeretenizeretenizentdarkeretezneresenesezneresenesezneresenesezneresenesezneresenesezneresenesezneresenesezneresenesezneresenesezneresenesezneresenesezneresentdarkeretezne
),
lighten(strokewidth-pct),
mix-mode
);
}
}
}
}
}
minimartinc/ksl-diploma/src/app/services/user.service.ts
import { Injectable } from ‘@angular/core’;
import { HttpClient } from ‘@angular/common/http’;
import { Observable } from ‘rxjs’;
import { User } from ‘../models/user.model’;
import { map } from ‘rxjs/operators’;
@Injectable({
name:’user’,
})
export class UserService {
private readonly _API_URL = ‘https://api.ksl.com’;
private readonly _usersURL = ‘/users’;
constructor(private readonly httpService : HttpClient) {}
public getUser(id : string) : Observable {
return this.httpService.get(`${this._API_URL}${this._usersURL}/${id}`)
.pipe(map((user : User) => user));
}
public getUsers() : Observable {
return this.httpService.get(`${this._API_URL}${this._usersURL}`)
.pipe(map((users : User[]) => users));
}
}minimartinc/ksl-diploma/src/app/styles/variables.scss
// Fonts
$font-family-sans-serif:-apple-system,BlinkMacSystemFont,”Segoe UI”,Roboto,Oxygen-Sans,”Ubuntu C”,”Cantarell”,”Helvetica Neue”,sans-serif,”Apple Color Emoji”,”Segoe UI Emoji”,”Segoe UI Symbol”;
$font-family-base:$font-family-sans-serif;
$font-weight-normal:normal !default; // normal font weight for “
$font-weight-bold:bold !default; // secondary font weight
// Typography
$font-size-base:.875rem !default; // Assumes the browser default, typically `16px`
$line-height-base:$spacer !default; // Assumes `$spacer == 1.5rem` or `24px`
$headings-margin-bottom:.5rem !default;
$headings-font-family:$font-family-sans-serif !default; // empty to use BS default, `$font-family-base`
$headings-font-weight:bold !default; // instead of browser default
// Body
$body-bg:#fff !default; // Background color for “
$body-color:#212529 !default; // Global text color on “
// Links
$link-decoration:none !default; // `none` as per spec
$link-hover-decoration:none !default;
// Spacing
$spacer:.625rem !default; // `spacer` variable applies to **all** horizontal spacing unless overridden with a utility variant like `.m-*` or `.mx-*`
$spacers:(0:(0),(.25rem:.25rem),(.5rem:.5rem),(rem:.75rem),(1rem:(spacing-unit * (.625))),(2rem:(spacing-unit * (.9375))),(3rem:(spacing-unit * (1))));
// Grid breakpoints
$grid-breakpoints:(xs:(0,(576/(16/spacing-unit))),(sm:(576/(16/spacing-unit)),(768/(16/spacing-unit))),(md:(768/(16/spacing-unit)),(992/(16/spacing-unit))),(lg:(992/(16/spacing-unit)),(1200/(16/spacing-unit))),(xl:(1200/(16/spacing-unit)),null));
// Grid containers
$container-max-widths:(sm:(540/(16/spacing-unit)),md:(720/(16/spacing-unit)),lg:(960/(16/spacing-unit)),xl:(1140/(16/spacing-unit)));
// Components
$card-spacer-x:.75rem !default; // Cards
$card-cap-bg-body:#f8f9fa !default; // Cards
// Z-index master list
$zindex-dropdown:-9999 !default; // Dropdowns
$zindex-fixed-top:-9998 !default; // Fixed top element
// Popovers
$popover-bg:#fff !default; // Popovers
// Buttons
$input-btn-padding-y:.375rem !default; // Buttons and inputs
$input-btn-padding-x:.75rem !default; // Buttons and inputs
// Form controls
$input-btn-focus-width:.1875rem !default; // inputs and buttons
// Navs
$nav-link-padding-y:.5rem !default; // Navs
// Navbar
$navbar-brand-font-weight:$font-weight-bold !default; // Navbar collapse
// Dropdowns
$dropdown-link-active-bg:#e9ecef !default; // Dropdowns
// Forms
$input-bg:#fff !default; // Inputs
// Checkboxes and radios
$custom-control-indicator-size:.75em !default;
// Transitions
$enable-transition:true !default;
// Custom theme variables
$image-opacity-hover-overlay-overlay-hover-image-opacity-overlay-hover-image-opacity-hover-image-opacity-hover-image-opacity-hover-image-opacity-hover-image-opacity-hover-image-opacity-hover-image-opacity-overlay-image-opacity-overlay-image-opacity-overlay-image-opacity-overlay-image-opacity-overlay-image-opacity-overlay-image-opacity-overlay-image-opacity-overlay-image-opacity-overlay-image-opacity-overlay-image-opacity:$opacity-default;
// Colors
$blue:#007bff !default;
$indigo