Neo Vision
  • Services
  • Work
  • About
  • Ebooks
  • Careers
  • Blog
  • Contact
  • Home
  • About
  • Ebooks
  • Services
  • Careers
  • Work
  • Blog
  • Contact

Our socials

  • Substack
  • Linkedin
  • Youtube
  • Twitter
  • Facebook
  • Instagram
  • Sortlist

Our address

Bulevardul Unirii No. 61, Bl. F3, Sc. 3, Et. 6, Ap. 607, Sector 3, 030167
Bucharest, Romania

Our contact

  • hello@neovision.dev
What we found on the web
Neo Vison Interview with Ziarul Financiar
from Ziarul Financiar
Check it out
Back

Tailor-made Cryptocurrency Trading Bots

Our client, an expert trader with 15 years of experience across various financial markets, approached us with a need for two top-of-the-line cryptocurrency trading bots. In this case study, we'll showcase how we built the two bots that rocked the market for this professional trader while maintaining a user-friendly and efficient interface.

2022 - Present
Tailor-made Automated Cryptocurrency Trading Bots

Debrief

The client's primary goal was to have two efficient and profitable cryptocurrency trading bots. They needed a user-friendly dashboard to manage and set up trading parameters, as well as a secure connection to their Binance account. Our team decided to use Tailwind CSS for the dashboard design and Binance's API for seamless account integration.

  • Client Nomad
  • Design Neo Vision
  • Roles Product Strategy,
    UI & UX Design,
    Frontend Development,
    Backend Development,
    DevOps,
    Continuous Development

The Process

digital-strategy-icon

Digital Strategy

  • Product Discovery Workshop
  • Business Process Analysis
  • Technical Architecture Document
  • SRSD (Software Requirements Specifications Document)
  • GIT, Issue Tracking and Development Server
  • Product Prototype
delivery-icon

Development

  • Front-end Development
  • Back-end Development
  • API Integrations
  • Internal Testing
  • Feedback and Revisions Implementation
development-icon

Delivery & Expansion

  • Production Server Architecture Configuration
  • Production Server Deployment
  • Maintenance and Administration
  • Continuous Development
  • Continuous Integration

What we used

Laravel-white-svg

Laravel

Web application framework with expressive, elegant syntax.

Nodejs-white-svg-5

NodeJS

Node.js® is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight, efficient, and perfect for data-intensive real-time applications that run across distributed devices.

php-icon

PHP

PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for Web Development and can be embedded into HTML.

HTML5-white-svg-5

HTML

HTML (HyperText Markup Language) is the most basic building block of the Web. It defines the meaning and structure of web content. Other technologies besides HTML are generally used to describe a web page's appearance/presentation (CSS) or functionality/behavior (JavaScript).

css-logo-icon

CSS

HTML defines the content, and CSS decorates it and helps tell how it is displayed. CSS stands for Cascading Stylesheet. This means there is a hierarchy of style attributes overwriting other attributes that affect the same elements.

JavaScript-white-svg3

JavaScript

JavaScript is a computer-readable language with many uses, most notably in web pages. JavaScript is "read" or interpreted by your browser, like Chrome or Firefox, which executes the instructions. JavaScript enhances the web page by allowing it to become more "interactive."

MySQL_white-svg

MySQL

MySQL is the world's most popular open-source database. Whether you are a fast-growing web property, technology ISV, or large enterprise, MySQL can cost-effectively help you deliver high-performance, scalable database applications.

CentOS_logo-white-svg

CentOS

The CentOS Linux distribution is a stable, predictable, manageable, and reproducible platform derived from the sources of Red Hat Enterprise Linux (RHEL).

Gitlab-white-svg-2

GitLab

A repository is what you use to store your codebase in GitLab and change it with version control.

The result

The first trading bot exceeded the client's expectations in both performance and ease of use. This success led the client to request a second bot, which we delivered and refined to meet their high standards.

Process:

We employed an Agile project management approach to build two high-performance trading bots with a functional dashboard using Tailwind CSS. We integrated Binance API for secure account connectivity and addressed data parallelism, storage, and manipulation challenges to ensure optimal bot performance.

Challenges, Lessons, and Recommendations:

To meet the expectations of an experienced trader, we worked closely with the client, iterating on bot logic and fine-tuning performance. We balanced aesthetics and functionality by leveraging Tailwind CSS and prioritizing usability. We learned the importance of close collaboration and iterative development, and recommend maintaining open communication with clients, emphasizing continuous improvement, and exploring new design tools for future projects.

Conclusion:

Neo Vision's expertise in performance, practicality, and user experience, along with our Agile project management approach, helped us deliver two powerful cryptocurrency trading bots for our experienced client. Our solution provided exceptional bot performance, seamless Binance API integration, and advanced data handling techniques, resulting in a highly satisfied client.

If your projects trouble you, we need to talk. If you believe in your idea, we need to talk. If you have looked for a solution everywhere, we need to talk. If your website sucks, we need to talk. If CSS is a sports club to you, we need to talk. If your kid doesn’t want to help you, we need to talk. If your boss signs their emails “sent from my iPhone”, we need to talk. If you spam LFG on /global, we need to talk. If you wonder when this loop resets, we need to talk. If you wonder if this is even a loop, we need to talk. If you try to break the Get in touch button, we need to talk. If you believe in the change, we need to talk. If you heard of parties in Mamaia, we need to talk. If you love High Contrast, we need to talk. If finding out a member of your family bought a new device sends shivers down your spine, we need to talk. If you think that Vama Veche nu mai e ce a fost, we need to talk. If you enjoy day drinking, we need to talk. If you stalk your ex on social media, we need to talk. If you read messages from the lock screen, we need to talk. If you read this on the subway, we need to talk. If you listen to the same 20 songs, we need to talk. If you think washing the dishes is common sense, we need to talk. If you missed the cryptocurrency boom, we need to talk. If you are stuck in traffic, we need to talk. If you never heard of “Puism” , we need to talk. If you want to change the world, we need to talk. If you’re still reading this, we need to talk. If you’re sexy and you know it, we need to talk. If you are voting on every election, we need to talk. If you think Sylvanas is still cool, we need to talk. If you are a jury from an awards website, we need to talk. If you are our competition, we need to talk. If you are looking for design inspiration, we need to talk. If you have tape over your webcam, we need to talk. If you forgot to log your time in Jira, we need to talk. If you think Cardi B is overrated, we need to talk. If Wakanda is forever, we need to talk. If you think Eminem turned soft, we need to talk. If you’ve been through the desert on a horse with no name, we need to talk. If you cried when Jiraiya died, we need to talk. If you have not understood Dark, we need to talk. If you think Tupac is alive, we need to talk. If you think it’s lupus, we need to talk. If you spent all night writing content, we need to talk. If you got admitted to the bar and chose the agency life, we need to talk. If you play Face Hunter, we need to talk. If you’re a superstar, we need to talk. If you want a discount, screenshot this and we need to talk.

Drop us a line and tell us about your project, goals and needs. Get us intrigued and we’ll schedule a date. Let's get it started!

Get in touch
Neo Vision

Our socials

  • Substack
  • Linkedin
  • Youtube
  • Twitter
  • Facebook
  • Instagram
  • Sortlist

Our address

Bulevardul Unirii No. 61, Bl. F3, Sc. 3, Et. 6, Ap. 607, Sector 3, 030167
Bucharest, Romania

Our contact

  • hello@neovision.dev

Footer menu

  • Terms & Conditions
  • Privacy Policy
  • Cookie Policy
© 2015 - 2023 Neo Vision Technologies. All rights reserved.
<template>
    <Layout name="Activity log">
        <ActivitiesFilters :activities="activities"></ActivitiesFilters>
        <div class="px-4 sm:px-6 lg:px-8">
            <div class="mt-6 flex flex-col">
                <div class="-my-2 -mx-4 overflow-x-auto sm:-mx-6 lg:-mx-8">
                    <div
                        class="inline-block min-w-full py-2 align-middle md:px-6 lg:px-8"
                    >
                        <div
                            class="overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg"
                        >
                            <table
                                class="min-w-full divide-y divide-gray-300 bg-gray-50"
                            >
                                <thead>
                                    <tr>
                                        <th
                                            scope="col"
                                            class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"
                                        >
                                            User
                                        </th>
                                        <th
                                            scope="col"
                                            class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"
                                        >
                                            Activity type
                                        </th>
                                        <th
                                            scope="col"
                                            class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"
                                        >
                                            Description
                                        </th>
                                        <th
                                            scope="col"
                                            class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"
                                        >
                                            Time
                                        </th>
                                        <th
                                            scope="col"
                                            class="px-3 py-3.5 text-left text-sm font-semibold text-gray-900"
                                        >
                                            IP
                                        </th>
                                    </tr>
                                </thead>
                                <tbody
                                    class="divide-y divide-gray-200 bg-white"
                                >
                                    <tr
                                        v-for="activity in activities.data"
                                        :key="activity.id"
                                    >
                                        <td
                                            class="whitespace-nowrap px-3 py-4 text-sm text-gray-500"
                                        >
                                            {{ activity.user_id }}
                                        </td>
                                        <td
                                            class="whitespace-nowrap px-3 py-4 text-sm text-gray-500"
                                        >
                                            {{ activity.activity_type }}
                                        </td>
                                        <td
                                            class="whitespace-nowrap px-3 py-4 text-sm text-gray-500"
                                        >
                                            {{ activity.description }}
                                        </td>
                                        <td
                                            class="whitespace-nowrap px-3 py-4 text-sm text-gray-500"
                                        >
                                            {{ activity.date_time }}
                                        </td>
                                        <td
                                            class="whitespace-nowrap px-3 py-4 text-sm text-gray-500"
                                        >
                                            {{ activity.ip }}
                                        </td>
                                    </tr>
                                </tbody>
                            </table>
                        </div>
                    </div>
                </div>
            </div>
            <Pagination :values="activities" />
        </div>
    </Layout>
</template>

<script setup>
import Layout from "@/Layouts/Layout.vue";
import Pagination from "@/Components/Pagination.vue";
import ActivitiesFilters from "@/Components/ActivitiesFilters.vue";

defineProps({
    activities: Object,
    users: Object,
});

</script>