The Vacanter is a mobile application for matching employers with potential employees. Moreover, it also has a Desktop version for Employers.
- 1 sprint: 16.09.22-7.10.2022 âś…
- 2 sprint: 7.10.2022-28.10.2022 âś…
- 3 sprint: 28.10-18.11.2022 âś…
- 4 sprint: 18.11-09.12.2022 ⏳
Build the docker image using:
docker build . -t main
Check whether you have successfully build the image:
docker images
Generate the docker container using:
docker run --name main -p 8000:8000 main
Check that your image is running:
docker ps -a
Some usefull commands:
docker stop main
- stop the docker containerdocker rm main
- remove image (before rebuild image step in case of error)
Run all 3 containers
docker compose up
Now you have access to those three containers and their respective ports:
- FastAPI(app.py): http://localhost:8000
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000
To acces Grafana username admin
password pass@123
On the FastAPI, you can access localhost:8000/metrics
endpoint to see the data Prometheus is scraping from it.
Example of Grafana visualization metrics:
{
request: {
headers: {
token: string(token)
}
}
}
{
item_id: int
request: {
headers: {
token: string(token)
}
}
}
{
request: {
headers: {
token: string(token)
}
}
}
{
request: {
headers: {
token: string(token)
}
}
}
{
cv_id: int
request: {
headers: {
token: string(token)
}
}
}
{
vac_id: int
request: {
headers: {
token: string(token)
}
}
}
{
vacancy_id: int
request: {
headers: {
token: string(token)
}
}
}
{
worker_id: int
request: {
headers: {
token: string(token)
}
}
}
{
like: {
job_id: int,
worker_id: int,
}
request: {
headers: {
token: string(token)
}
}
}
{
like: {
job_id: int,
worker_id: int,
}
request: {
headers: {
token: string(token)
}
}
}
{
request: {
headers: {
token: string(token)
}
}
}
{
login: str,
token: str
request: {
headers: {
token: string(token)
}
}
}
{
login: str,
password: str
request: {
headers: {
token: string(token)
}
}
}
{
email: str
request: {
headers: {
token: string(token)
}
}
}
{
email: str
request: {
headers: {
token: string(token)
}
}
}
{
email: str
request: {
headers: {
token: string(token)
}
}
}
{
id: int
request: {
headers: {
token: string(token)
}
}
}
{
id: int
request: {
headers: {
token: string(token)
}
}
}
{
id: int
request: {
headers: {
token: string(token)
}
}
}
{
id: int
request: {
headers: {
token: string(token)
}
}
}
{
id: int
request: {
headers: {
token: string(token)
}
}
}
{
vacancy: {
id: int,
cr_user: int,
vac_name: str,
vac_text: str,
cr_date: datetime.datetime,
vac_category: int,
img_id: int
}
request: {
headers: {
token: string(token)
}
}
}
{
vacancy: {
id: int,
cr_user: int,
vac_name: str,
vac_text: str,
cr_date: datetime.datetime,
vac_category: int,
img_id: int
}
request: {
headers: {
token: string(token)
}
}
}
{
cv: {
id: int,
cr_user: int,
cv_name: str,
cv_text: str,
cr_date: datetime.datetime,
img_id: int,
cv_category: int,
salary: int,
experience_content: str,
education_content: str
}
request: {
headers: {
token: string(token)
}
}
}
{
cv: {
id: int,
cr_user: int,
cv_name: str,
cv_text: str,
cr_date: datetime.datetime,
img_id: int,
cv_category: int,
salary: int,
experience_content: str,
education_content: str
}
request: {
headers: {
token: string(token)
}
}
}
{
profile: {
id: int,
name: str,
surname: str,
age: str,
gender_id: int,
img_id: int,
cr_user: int
}
request: {
headers: {
token: string(token)
}
}
}
{
profile: {
id: int,
name: str,
surname: str,
age: str,
gender_id: int,
img_id: int,
cr_user: int
}
request: {
headers: {
token: string(token)
}
}
}
{
id: int
request: {
headers: {
token: string(token)
}
}
}
{
id: int
request: {
headers: {
token: string(token)
}
}
}
{
user_id: int,
vacancy_id: int
request: {
headers: {
token: string(token)
}
}
}
{
vacancy_filters: {
salary: int | None,
is_fulltime: bool | None,
is_distant: bool | None,
location_id: int | None,
grade_id: int | None
}
request: {
headers: {
token: string(token)
}
}
}
{
vac_id: int
vacancy_filters: {
salary: int | None,
is_fulltime: bool | None,
is_distant: bool | None,
location_id: int | None,
grade_id: int | None
}
request: {
headers: {
token: string(token)
}
}
}
{
user_filters: {
salary: int | None,
grade_id: int | None,
languages_ids: List[int] | None
}
request: {
headers: {
token: string(token)
}
}
}
{
user_id: int
user_filters: {
salary: int | None,
grade_id: int | None,
languages_ids: List[int] | None
}
request: {
headers: {
token: string(token)
}
}
}