Note: This challenge is obsolete
Optio.Ai ქართული ფინტექ სტარტაპია, რომელიც ბანკებს დიდი მონაცემების (Big Data) სწრაფი კონსოლიდაციის, აგრეგაციის, ანალიზის და მონაცემებზე დაფუძნებული გადაწყვეტილებების მიღების საშუალებას აძლევს მანქანური სწავლებისა და ხელოვნური ინტელექტის გამოყენებით.
შენი ამოცანაა დაეხმარო Optio.Ai პლატფორმის მომხმარებელს და აჩვენო აგრეგირებული მონაცემები სხვადახვა ჭრილში. ამისათვის საჭიროა შექმნა ორი გვერდი, დეშბორდი და ცხრილი, რომლისთვისაც მონაცემებს აიღებ Optio.Ai-ს სატესტო API-დან. ქვემოთ მოცემულია თითოეული გვერდის დეტალური აღწერა და API სერვისის დოკუმენტაცია მაგალითებითურთ.
Optio.Ai-ის სატესტო API-ის ეს ორი მეთოდი საკმარისია ამოცანის შესასრულებლად:
/api/v2/analytics/transactions/facts/aggregate
- აბრუნებს აგრეგირებულ ფაქტებს განზომილებებისა და ფილტრების მიხედვით;/api/v2/analytics/transactions/facts/find
- აბრუნებს ფაქტებს თითოეული თარიღისთვის, განზომილებებისა და ფილტრების მიხედვით.
პროგრამირების დაწყებამდე Swagger-ით შეგიძლია გამოსცადო API-ს ფუნქციონალობა ამ მისამართზე: https://api.next.insight.optio.ai/api/docs/analytics
ანალიტიკურ დეშბორდზე უნდა განათავსო სამი გრაფიკი და ერთი ცხრილი
აღწერა: გრაფიკზე ჩანს ყველა კლიენტის ჯამური ხარჯის მოცულობა კატეგორიების მიხედვით.
გრაფიკის ტიპი: Donut Chart
API-ს მისამართი: /…/facts/aggregate
API-ს პარამეტრები:
{
"dimension": "parent-category",
"types": [
"spending", "withdrawal"
],
"gteDate": "2018-01-01",
"lteDate": "2018-01-31",
"includeMetrics": [
"volume"
]
}
აღწერა: გრაფიკზე ჩანს ყველა კლიენტის ჯამური ხარჯის მოცულობა ან ტრანზაქციების რაოდენობა, დღეების მიხედვით. მომოხმარებელს უნდა შეეძლოს აირჩიოს თანხის მოცულობის დათვალიერება უნდა თუ ტრაზაქციების რაოდენობის.
გრაფიკის ტიპი: Heatmap
API: /…/facts/aggregate
API-ს პარამეტრები:
{
"dimension": "date",
"types": [
"spending", "withdrawal"
],
"gteDate": "2018-01-01",
"lteDate": "2018-01-31",
"includeMetrics": [
"volume", "quantity"
]
}
აღწერა: გრაფიკზე ჩანს ყველა კლიენტის შემოსავლების ჯამური მოცულობა კატეგორიების და თარიღების მიხედვით.
გრაფიკის ტიპი: Line Chart
API-ს მისამართი: /…/facts/find
API-ს პარამეტრები:
{
"dimension": "category",
"types": [
"income"
],
"gteDate": "2018-01-01",
"lteDate": "2018-01-31",
"sortBy": "date",
"sortDirection": "asc",
"pageIndex": 0,
"pageSize": 50,
"includes": ["dimension", "date", "volume"]
}
გაითვალისწინეთ, რომ find-ის API-ის აქვს გადაფურცვლის (paging) მხარდაჭერა. შესაბამისად, იმდენჯერ მოგიწევთ ფუნქციის გამოძახება, სანამ არ წამოიღებთ ყველა ჩანაწერს ფილტრებით.
აღწერა: ეს არის ცხრილი, სადაც ჩანს 20 ყველაზე პოპულარული ობიექტი (მერჩანტი), რომლებშიც ბანკის კლიენტებმა ჯამურად ყველაზე მეტი თანხა დახარჯეს
გრაფიკის ტიპი: ჩვეულებრივი ცხრილი
API-ს მისამართი: /…/facts/aggregate
API-ს პარამეტრები:
{
"dimension": "merchant",
"types": [
"none"
],
"gteDate": "2018-01-01",
"lteDate": "2018-01-31",
"includeMetrics": [
"volume"
]
}
გაითვალისწინეთ, რომ API დააბრუნებს დაუსორტირებელ ყველა მერჩანტს. შესაბამისად თქვენ მოგიწევთ დაასორტიროთ კლებადობით ‘volume’ ველის მიხედვით და აჩვენოთ Top 20 ჩანაწერი.
ამ გვერდზე, ცხრილის სახით უნდა გამოჩნდეს ის მონაცემები, რაზეც შესაბამისი გრაფიკია დაფუძნებული. ცხრილი შედგება 7 სვეტისგან:
- Dimension
- Date
- Quantity
- Volume (GEL)
- Average (GEL)
- Difference quantity
- Difference volume
ცხრილი უნდა აკმაყოფილებდეს შემდეგ მოთხოვნებს: \
- მომხმარებელს უნდა შეეძლოს სხვადასხვა თარიღობრივი შუალედის არჩევა
- მომხმარებელს უნდა შეეძლოს ცხრილის გადაფურცვლა (Paging) და ფურცელზე ჩანაწერების რაოდენობის მითითება (Page Size)
- მომხმარებელს უნდა შეეძლოს ცხრილის სორტირება ნებისმიერი ველით
- ბმულის კოპირება და თავიდან გახსნა უნდა იწვევდეს იგივე ინტერფეისის ჩატვირთვას, იგივე მონაცემებით
გვერდების სამომხმარებლო ინტერფეისი (UI) და სამომხმარებლო გამოცდილება (UX) შენი გემოვნებით და შეხედულებით შეიმუშავე, თუმცა სასურველია Responsive ინტერფეისები.
API-ს მისამართი: /…/facts/find
გრაფიკის ტიპი: ჩვეულებრივი ცხრილი
API-ს პარამეტრები: გამომდინარე იქიდან რომელი გრაფიკის დეტალებს გახსნით, უნდა გადმოსცეთ იგივე “dimension” და “types” პარამეტრები. დანარჩენი პარამეტრები შეიცვლება იმის მიხედვით თუ რითი დაასორტირებს ცხრილს ან გადაფურცვლის რა პარამეტრებს დააყენებს მომხმარებელი.
თუ დაგაინტერესებს შეგიძლია გაეცნო ანალიტიკის მოდულის განმარტებებს, რომელსაც ამ დავალებაში ვიყენებთ.
ამოცანის გადაწყვეტა საჭიროა Angular-ის გამოყენებით, ხოლო გრაფიკებისა და ვიზუალიზაციისათვის გამოიყენე Apache Echarts ბიბლიოთეკა.
ჩვენ ვეძებთ ახალგაზრდებს, რომლებიც ახლა იწყებენ პირველი კარიერული ნაბიჯების გადადგმას და გადაწყვეტილი აქვთ, რომ პროგრამირება მათი მთავარი პროფესიული საქმიანობაა.
ჩვენს გუნდში უკვე არიან შენნაირი დამწყები პროგრამისტები. მათ ყავთ საქართველოში ერთ-ერთი საუკეთესო მენტორი, რომელიც უზრუნველყოფს შენს პროფესიულ განვითარებას და დაგეხმარება შეისწავლო:
- პროგრამირება Javascript/Typescript/Angular/NodeJS ენების და ტექნოლოგიების გამოყენებით;
- Clean code-ის სტანდარტები;
- Git-თან მუშაობის საუკეთესო პრაქტიკა;
- კომპლექსური სისტემების არქიტექტურა;
- გუნდური მუშაობა;
- ავტომატური ტესტირება.
ჩვენთვის მნიშვნელოვანია ვიპოვოთ ცნობისმოყვარე, სწავლაზე და შრომაზე ორიენტირებული ადამიანები, რომლებიც გაივლიან ანაზღაურებად სტაჟირებას და წარმატებული სტაჟირების შემთხვევაში დასაქმდებიან ჩვენს კომპანიაში.
ამოცანის შესრულებისას ყურადღებას მივაქცევთ რამდენად სწორად არის გაგებული და შესრულებული ამოცანის მოთხოვნები და რამდენად არის დახარჯული დრო კოდის ხარისხზე, თუმცა შეზღუდული არ ხარ მხოლოდ ამოცანის მოთხოვნებით და ნებისმიერი დამატება და გაუმჯობესება მისასალმებელია.
challenge-april-2022
.
ეს Apache Echarts აქედან?