Trending Feed

Founder at Impulz Technologies·

As a startup, managing my own database, backups and even the schemas/migrations are all overhead. Next to that, I needed both Backend and Frontend ways to write to the database. With firebase this is possible, this saved us some time: Some API calls were not needed because I could directly fetch data in the FE.

Offline support & realtime data updates is also supported out of the box. No need to write your own websockets.

Once the startup grows, moving to a different relational database might make sense. But in a pre-product-market-fit startup, Firebase is a good, and cheaper fit!

The pricing model of firebase firestore is a bit risky. But it saves a lot of time to get quickly to market.

READ MORE
6 upvotes·3K views
Senior Software Developer at Shyplite·

So, we started using foundationDB for an OLAP system although the inbuilt tools for some core things like aggregation and filtering were negligible, with the high through put of the DB, we were able to handle it on the application. The system has been running pretty well for the past 6 months, although the data load isn’t very high yet, the performance is fairly promising

READ MORE
3 upvotes·168 views
Technical Architect at ERP Studio·
Needs advice
on
MongoDBMongoDB
and
Amazon DynamoDBAmazon DynamoDB

We are developing a system in which we have to collect 10 Million records every day. We need a database solution, NoSQL. data is simple logs. We are using AWS for now. I want to know the cheaper solution from both available techs. Amazon S3 or MongoDB.

We have 30 Tables that are collecting these logs.

READ MORE
6 upvotes·2.7K views
Replies (3)
Developer ·

The way I'd approach this is to carry out a survey. Prioritise a list of important criteria, such as performance, functionality, and cost. For example with MongoDB you can archive documents if the data not immediately required to save on costs at the expense of instant access, but if that fits your use case model then you can use that feature. So create a use case test project that actually uses both services as per your use case and see for yourself the results of the tests. Along the way you'll encounter issues perculiar to each platform that you can factor into your final decision, such as comparing how easy it is to use their API, or that the documentation is sparce or confusing. From there you'll have an informed decision and you'll be confident investing further resources into it.

READ MORE
5 upvotes·1 comment·2.6K views
reidmorrison
reidmorrison
·
January 9th 2022 at 5:20PM

If you use Amazon DocumentDB instead of DynamoDB, it is compatible with the MongoDB API. That will keep your code cloud agnostic and you have option of switching between DynamoDB and MongoDB in the future based on whichever ends up being cheapest to run.

·
Reply
Director - NGO "Informational Culture" / Ambassador - OKFN Russia at Infoculture·

I am a big fan of MongoDB and It's great for document storage but I am not really sure that it's the best engine for log storage. If data that you store is "flat" and well-defined than log storage based on engines like Clickhouse or Elasticsearch stach could be much more efficient. Also it's quite important how you reuse collected logs. Do you calculate aggregated metrics? Do you need full search ? And so on.

If logs are really simple and full text search needed than Logstash + Elasticsearch. If you need to calculate a lot of metrics and logs are not just text, but include numbers/values needed for aggregation than Clickhouse.

READ MORE
2 upvotes·1.2K views
View all (3)
Backend Developer at Famcare·

When we first lunch Famcare we needed overcome scalability issues by implementing a serverless application, as we believe in Laravel framework and its capability, we struggled to have a maintainable app in AWS lambda as it does not support php runtime by default so we decided to use Laravel Vapor to manage our AWS stack and deployment.

READ MORE
4 upvotes·6K views
Software Development Engineer at Stier Solution Private Limited·

Easy to start, lightweight and open source.

When I started with PHP, MySQL was everywhere so this is how I started with it. I am no expert in databases but I started learning joins, stored procedures, triggers, etc. with MySQL.

Recently used it in one of my projects - Picfam.com with Node.js + Express backend

READ MORE
7 upvotes·8.2K views
Needs advice
on
ReactReactJavaScriptJavaScript
and
CSS 3CSS 3

Hi, I learned some skills like HTML & CSS and JavaScript. Now I am learning React but sometimes I feel that I'm not good enough in the skills that I learned before although I make projects by any skills I learned. Every moment I feel that I need to be perfect and I know it's a wrong feel. Now I try to know How can I determine that I have the basis of any skills that I learn I mean that When can I move from learning completing tutorials to learning according to my requirement.

READ MORE
14 upvotes·8.5K views
Replies (4)

I admire your hard work for learning new technologies, but I would definitely recommend you to go out there, find internships and then learn by doing. There is not too much you can learn just from the tutorials, there are other important factors that you need to be a good programmer, you need to communicate, and do projects according to the liking of the client/project manager.

I would say it again, go out there and find internships to gain experience.

READ MORE
8 upvotes·2 comments·8.4K views
Dasari Priyanka
Dasari Priyanka
·
December 27th 2021 at 12:53PM

Nice article with the most useful Information.

https://www.gologica.com/course/html5-css3/

https://www.gologica.com/course/word-press/

·
Reply
rjp 777
rjp 777
·
December 29th 2021 at 12:19PM

very helpfull

·
Reply

Build a relatively more complicated project. Probably a solution for a problem you might facing rn. Take a few months to build it. Get yourself stuck in the bugs. Try to get outta that bugs. Don't worry about that imperfect feelings. Even senior devs go to Stackoverflow to seek help. And most importantly, finish the project, and don't give it up in the middle of the journey.

READ MORE
6 upvotes·1 comment·5.3K views
Ido Segev
Ido Segev
·
January 6th 2022 at 10:27AM

a Great answer!

·
Reply
View all (4)
FLO HEALTH, INC.·

Python was first used at Flo because we needed quick prototyping and product idea validation. So, the very first backend architecture was built as a monolithic Python web service. Now we use it for ML-related projects, building web services for our core product, and a huge variety of utilities that help to support platforms or integrations with external tools.

We do focus on getting the most beneficial aspects of language and balancing development with Scala. Core application services include the health domain cycle predictions, managing user data, chat-bots, etc. Python helped us start development and is still capable of managing high-load.

READ MORE
15 upvotes·10.2K views

It’s pretty common when you read a success story about migrating from a monolith to microservices to see that people have a clear idea of what they already have; what they want to attain overall; that they have looked at all the pros and cons; and out of the plethora of available candidates, they chose Kubernetes. They have been faced with insurmountable problems, and with an unbelievable superhuman effort they resolved these issues and finally found the kind of happy resolution that happens “a year and a half into production.”

Was that how it was for us? Definitely not.

We didn’t spend a lot of time considering the idea of migrating to microservices like that. One day we just decided “why not give it a try?” There was no need to choose from the orchestrators at that point: Most of the dinosaurs were already on their last legs, except for Nomad, which was still showing some signs of life. Kubernetes became the de facto standard, and I had experience working with it. So we decided to pluck up our courage and try to run something non-critical in Kubernetes.

Considering that at that time all our infrastructure was in AWS, we also didn’t spend much time deciding to use EKS.

I’m struggling to remember who we chose as the guinea pig for the run in EKS — it might have been Jenkins. Or Prometheus. It’s difficult to say, but gradually all the new services were launched in EKS, and on the whole, everyone liked the approach.

The only thing that we didn’t understand was how to organize CI/CD.

At that time, we had the heady mix of Ansible/Terraform/Bitbucket, and we were not entirely satisfied with the results. Besides, we tried to practice delivery engineering and didn’t have a dedicated DevOps team, and there were many other factors too.

What did we need?

  • Unification — despite the fact that we never needed our teams to use a strictly defined stack, in CI/CD, some certainty was desired.
  • Decentralization — as mentioned earlier, we did not have a dedicated DevOps team, nor the desire (or need) to start one.
  • Relevance — not bleeding edge, but we wanted a tech stack that was on trend.
  • We also wanted the obvious things like speed, convenience, flexibility, etc.

It was safe to say that Helm was the standard for installing and running applications in EKS, so we didn’t use Ansible or Terraform for the management and templating of Kubernetes objects, although this solution was offered. We only used Helm (although there were lots of questions and complaints about it).

We also didn’t use Ansible or Terraform to manage Helm charts. It didn’t fit with our desire for decentralization and wasn’t exactly convenient. Again, because we don’t have a DevOps team, our service can be deployed in EKS by any developer with the help of Helm, and we don’t need (or want) to be involved in this process. We therefore took the most controversial route: We made our wrapper for Helm so it would work like an automatic transmission, more specifically that it would reduce interaction with the user when making the decision to go or not to go (in our case, to deploy or not to deploy). Later, we added a general Helm chart to this wrapper, so the developer needed several input values for deploying:

  • What to deploy (docker image)
  • Where to deploy (dev, stage, prod, etc.)

So in all, the service deployment process was run from the repository of the same service by the same developer, exactly when and how the developer needed it. Our participation in this process was reduced to minimal consultation on some borderline cases and occasionally eliminating errors (where would we be without them?) in the wrapper.

And then we lived happily ever after. But our story isn’t about that at all.

In fact, I was asked to talk about why we use Kubernetes, not how it went. If I am honest (and as you can surely tell), I don’t have a clear answer. Maybe it would be better if I told you why we are continuing to use Kubernetes.

With Kubernetes, we were able to:

  • Better utilize EC2 instances
  • Obtain a better mix of decentralization (all the services arrive in Kubernetes from authorized repositories, we are not involved in the process) and centralization (we always see when, how, and from where a service arrives to us, whether it is a log, audit or event)
  • Conveniently scale a cluster (we use the combination cluster autoscaler and horizontal pod autoscaler)
  • Get a convenient infrastructure debug (not forgetting that Kubernetes is only one level of abstraction over several others, and even in the worst case scenario it is under the hood of standard RHEL … well, at the very least we have it)
  • Get high levels of fault tolerance and self-healing for the infrastructure
  • Get a single (well, almost) and understandable CI/CD
  • Significantly shorten TTM
  • Have an excellent reason to write this post

And although we didn’t get anything new, we like what we got.

READ MORE
11 upvotes·1 comment·9K views
reidmorrison
reidmorrison
·
January 9th 2022 at 5:35PM

For anyone starting out with deploying Docker Containers on AWS, AWS ECS/Fargate is a simpler solution to get started with.

If your operations team is already familiar with Kubertnetes, then AWS EKS is a great solution. For anyone not already familiar with Kubernetes or does not want to be concerned with managing Kubernetes, then AWS ECS is the simpler solution.

AWS ECS Fargate goes one step further by running your docker containers on shared infrastructure so that you don't have to manage any EC2 servers yourself. You tell it where your docker image is and it will run it for you. Put it behind an AWS ALB (Application Load Balancer) and it is straight forward to tell it how to automatically grow and shrink the cluster of docker containers based on load.

To get started with a deployment is as easy as restarting the cluster and it will pull the latest published version of your docker images. We store images in AWS ECR with the appropriate tags so that a rollback is as simple as re-tag and re-start.

·
Reply
Needs advice
on
MongoDB AtlasMongoDB AtlasFirebaseFirebase
and
DjangoDjango

Hi, I'm trying to build a project where companies display some of their data (mostly unstructured) that I want to store on a cloud database. And users will be able to read this data and interact with it (not much interaction tho). the primary focus on the database will be for easy access for displaying, and the data won't change a lot over a time period. I was wondering if I should 1) use Django as a framework to build on, and/or 2) use either Firebase or MongoDB Atlas as a database. In this, I am more inclined to Firebase because I will need to authenticate users and have past experience with Firebase.

READ MORE
4 upvotes·5.6K views
Replies (2)
Full Stack Web Developer ·

If your goal is to display data MongoDB is a good choice in term of storage and cost. The shared instance mostly fit entry level application.

If your unstructured data schema doesn't chance much (fields add/remove) you can even plug-in the GraphQl Api implementation with MongoDB Realm, also MongoDB Realm offer a variety of authentication providers (JWT/JWKS, apiKey, custom scheme). If you go with GraphQL you can skip Django (unless you have custom business logic) and just build a frontend app to display your data (VueJS, React, Svelte, jQuery, vanilla javascript, etc...).

READ MORE
3 upvotes·3.7K views
CTO at Voila Cab's·

If your primary focus is just storage of data and read's and not too many frequent writes, in this case you can build your API on serverless platforms ( AWS Lambda ) and store the Data in Dynamo DB's which comes with decent free tier usage. Firebase is preferably a good choice when you need real-time updates to be synced to clients ( Mobile devices or Web) .

READ MORE
1 upvote·3.7K views
Needs advice
on
VuforiaVuforia
and
TensorFlowTensorFlow

I am trying to get started with using TensorFlow. I have a few projects that mainly focus on image classifiers in mind but I have a question on a project that I'm trying to possibly do. The problem that I am hoping to solve is to find the orientation of an object. I was wondering if I have an object such as a cylinder and the problem is to find the orientation to insert into a machine via an arm. I am working with others who are more familiar with python but I don't know if TensorFlow would have the capabilities for my project. I think it would be able to identify the object but a solution I ponder is if it would be possible to run one image classifier to find and box the cylinder and another to find the orientation since the input would be the boxed image, and then to find a rudimentary orientation based off of many pictures with them at various angles. Or if this level is too complicated to run accurately with reasonable speeds. Possibly there is a much simpler solution or is a very hard problem. Though I thought I would ask to see if there is something else that would better suit my needs before taking the time to learn TensorFlow and try to make it only to be told it won't work.

READ MORE
5 upvotes·8.9K views
Replies (3)

I think it might be not so important which tensor computation framework you choose. It might be a better idea to see which model(s) fit your needs best and then have a look, where you can implement them with the lowest barrier. I would suggest you have a look at YOLO (You Only Look Once) and YOLO v2 or v3 and see if it fits to your requirements. From a fast look, I would say it should do the trick: https://www.it-jim.com/wp-content/uploads/2020/05/1D-direction-estimation-with-a-YOLO-network.pdf

YOLO 3 seems to have moved to Pytorch, though: https://github.com/wizyoung/YOLOv3_TensorFlow

READ MORE
3 upvotes·2.9K views
Senior Software Engineer ·

You can use an object classification coupled with a detection model and then train it on a set of images that can identify your object. To train the classification model, you can edit and expand the training set using opencv as well.

READ MORE
2 upvotes·7.6K views
View all (3)
Engineering Manager at Workpath·

With ongoing refactors from Class to function components we also realized that Enzyme was not what we wanted. Instead of testing internals (like component state) we opted to go for a more user centric approach in our integration tests.

It also helps that react-testing-libraries is more straightforward and intuitive to understand for engineers than Enzyme. It's really just rendering into a DOM instead of making decisions about shallow and mount rendering.

So far we are very happy about that decision. Even Juniors love to work with it and regularly are excited to write and contribute to better integration tests.

READ MORE
4 upvotes·15.5K views
Senior Software Engineer at WeRoad·

For a full-stack app or just simple APIs I'd go 100% with Laravel. You get a clean architecture, beautiful documentation and friendly and always growing community: the project is yours, from A to Z. With their docs and resources like Laracast you can start from zero and build what you want, when you want. The learning curve is definitely smaller when compared to Symfony and, with the help of a bit of "magic" (Facades etc.) you get the same results in the half of the time with cleaner code.

READ MORE
5 upvotes·17.3K views

Caring about privacy I've chosen to go with self-hosted Ackee analytics for incoming traffic analytics and ahoy ruby gem to build inside-app analytics. Still getting Caring about privacy I've chosen to go with self-hosted Ackee analytics for incoming traffic analytics and ahoy ruby gem to build inside-app analytics. Still getting a plenty of data without sending visitors' information to Google

READ MORE
5 upvotes·16.1K views

GitHub provides great user experience ans most developers are familiar with it. There is also an attractive pricing model for those who already have a Visual Studio subscription.

We also don't like the "everything in one tool" approach from GitHub as there are better tools for build system, package registries, etc. on the market.

READ MORE
6 upvotes·17.3K views

JavaScript is an integral part of web development and has been around almost since the inception of the world wide web. Frameworks are built around javascript because of its power and how browsers rely on the updated releases of javascript and try to make things either easier, and or more powerful. TypeScript is a good example of this.

READ MORE
10 upvotes·2 comments·21.2K views
Waldo Monroy
Waldo Monroy
·
December 14th 2021 at 6:34AM

Thank you for your input. Keep up the good work

·
Reply
rjp 777
rjp 777
·
December 29th 2021 at 12:19PM

thanks for sharing

·
Reply

I decided on shopify over Woo since the user interface was so much easier to use. I have been setting up my hypnotherapy site. I was interested in the ease of using html as ell. For me i have little time to sit worrying about code and also have an assistant who is not familiar with websites, so it all needed to be easy to use and so Shopify seemed the better choice.

READ MORE
Hypnotherapy in London - London Hypnotherapy, CBT, NLP and Life Coaching (deepdivetherapy.co.uk)
8 upvotes·1 comment·16.2K views
Kommey kommey
Kommey kommey
·
January 4th 2022 at 7:41PM

good

·
Reply
Needs advice
on
DjangoDjango
and
ASP.NET CoreASP.NET Core

Hi, I am a professional accountant, not a computer programmer but I know programming concept and love it, in past have learned VB.Net in the year 2008. I want to use my accounting experience in programming by developing Web-Based ERP/Accounting Software integrated with to eCommerce platform. I want to develop ERP and eCommerce for a particular industry which can be used by 100+ companies. I am not very sure which programming language and framework I should use for the project. I found that Python-Django is the most powerful platform/framework to build any kind of application. Sometimes I am thinking about ASP.NET because I have learned little .Net concept. Now I want to invest my time and money in something which is very robust and helps to develop my project. So, I am very much confused between ASP.Net or Django. Please could anybody advise me which framework would be ideally good to develop this project which will carry for coming many years... Many thanks for your suggestions and advice.

READ MORE
5 upvotes·13.6K views
Replies (4)

If you are starting from scratch, I would recommend Express.js as a backend web framework. It is faster and more flexible than Django. Express makes it easy to build web applications offering numerous benefits such as efficiency and quicker development times. Some features that are worth mentioning: middlewares, templating, routing, and debugging.

The most important element that is missing the stack is the database. A Web-Based ERP/Accounting Software require a powerful Relational Database to comply with ACID princliples (Atomicity, Consistency, Isolation and Durability). By atomicity, we mean that that database is able to perform the transactions in an atomic manner. A transaction is just a single unit of work, which can either be one query, or multiple queries. Let's say that we have two accounts. And we need to transfer $100 from account one to account two. Now this transfer is just one transaction, but it is going to consist of three different steps. The first step is checking if the account one does have $100. The second would be upgrading the amount of account one to be $900. And the third would be taking this $100 and making the balance and account two be $200. If the database does support atomic transactions, if one of these three steps fail, the whole transaction should fail. This is what atomicity is.

Consistency means that the database should help in achieving the correct data state, adding certain constraints. We can add a constraint on the amount column that it can never be negative, and the database must make sure that this constraint must always be followed.

Then, we have isolation, which is mainly about the concurrency control. Let's say that we have an account which has $1,000, and there are two persons A and B trying to get the money out of this account. So $1,000 and $100. If we let both of these transaction happen at the same time, this would result in the reduction of $1,100. So the balance will result in the negative $100. Isolation prevents this to happen.

Finally, durability means that once a transaction is committed, the data must be written to the non volatile memory or the storage. So that even if the crash happens or something wrong happens with the database, the data must be there and not be corrupted.

In terms of relational database my recomendation is using Postgres. Postgres is an object-relational database, while MySQL is a purely relational database. This means that Postgres includes features like table inheritance and function overloading. Postgres also adheres more closely to SQL standards.

READ MORE
6 upvotes·2 comments·12.2K views
ALESSIO SALTARIN
ALESSIO SALTARIN
·
December 23rd 2021 at 3:25PM

You are making a choice beween a non-typed language (Python) and a typed one (C#). Bear in mind that complex projects always need the clarity and order that a typed language brings. Although I still love Django, I recommend it for small project. Large projects needs types.

·
Reply
Dinesh Kasar
Dinesh Kasar
·
December 30th 2021 at 11:41AM

Thank you very much for your suggestions. I also prefer ASP.Net, but while looking at currently scenario it seemed Python-Django growing up so it confused me whether ASP is good idea to look into.

·
Reply
Full Stack Web Developer ·

If you already have some knowledge in C# you can go with ASP.NET Core MVC and continue your learning path (if you liked the language in the first place). but both solution will allow you to build an ERP/eCommerce project.

There is not too much difference between Django and ASP.Net Core MVC both follow the same design principles for building application, they both flexible, provide a lot of library, have a great community support..

The downside (thats my opinion) with ASP.Net Core you are going to follow the Microsoft philosophy of doing thing and you will mostly by tight to there products lineup. Instead of Django where you'll have more freedom.

If your concern is - Robustness: both are valid choice - Long Term Support: Go ASP.Net why? Because the project is maintained by Microsoft the chance that the project go unmaintained is low. Django is more Open Source we never know when it will stop be maintained.

The best I can give you, it's to try both and make your own opinion. Build a Proof of Concept and see by yourself.

READ MORE
5 upvotes·1 comment·8.6K views
Dinesh Kasar
Dinesh Kasar
·
December 30th 2021 at 11:44AM

Thank you Guillaume Maka for your recommendations. It is quite difficult to make up the mind when both choices are quite similar in terms of giving the the result. so as you suggested, I would try both at the initial level and see where i get comfort.

·
Reply
View all (4)
DevOps at Synetech·

We decide to choose Gitlab as prefered Project management, code hosting and CI/CD tool because IT best fit our agency needs. We love their integrations with open source tools around the dev wold. Gitlab is all in one solution but you must be on the same boat about how project development should look like. Gitlab is a lot les customizable than Azure Devops.

READ MORE
7 upvotes·17K views
Engineering manager at bol.com·

With the growth of our engineering community, the need for more focus on engineering productivity is clear. We invited two experts to discuss this topic with us. We chose Backstage. Backstage is a platform for developer portals that is used as an app store for tools for software engineers. This product was built inside Spotify and later on open-sourced by them.

READ MORE
Something went wrong. (open.spotify.com)
6 upvotes·22.7K views

I don't think I have registered a domain in the last 10 years that hasn't been linked to CloudFlare within the first 2 hours from registration.

The benefits you get from even the free version of CloudFlare are amazing. From day 0: - 30/80% of bandwidth savings thanks to their CDN - Origin IP address protection - Managed SSL

READ MORE
9 upvotes·24.5K views

I want to make a classroom kind of Flutter app in which there will be a teacher student login register feature and teachers have various classes and so do students who have various classes to take. Teachers can take attendance daily and save it in a database for each date (give some task later feature) and students can view the days they attended and the teacher can delete the class, add the class having the class ID. Students can enroll and unroll through the class ID.

I am new to backend development what will be the best Backend to implement the above idea and what Techstack is more advisable and which DB is preferred? Pls help

READ MORE
Sign Up | LinkedIn (linkedin.com)
18 upvotes·20.9K views
Replies (4)
Full Stack JS Developer ·

Hi Vaibhav, any backend tool can help you achieve what you are looking for your project. As you are a student and will be looking for jobs once you complete your degree, I recommend to develop your project using Nodejs(ExpressJs) for backend and MongoDB for the database. This stack is quite hot now-a-days and showcasing this project developed in this Stack will help you achieve the confidence of your employer during interviews. Wish you all the best!

READ MORE
27 upvotes·3 comments·20.8K views
Vaibhav Gupta
Vaibhav Gupta
·
December 2nd 2021 at 3:45AM

Sir,

Thanks for the advice.

I request you to lend me your time.

I want a general overview of the backend and my doubts regarding it.

How can I contact over a you Pls let me know if you are okay.

·
Reply
Jenil Calcuttawala
Jenil Calcuttawala
·
January 4th 2022 at 1:08PM

Hi Vaibhav, if you're stuck somewhere, do let me know. I will be happy to help you out.

·
Reply
Vaibhav Gupta
Vaibhav Gupta
·
January 5th 2022 at 7:15AM

Yes Sir pls I would like to have a meeting pls let me know a best time.

·
Reply

I would recommend using NestJS if would like to use a Type Strong framework for setting up your endpoints and use TypeScript for this. But ExpressJS can also do the job just fine and it does support TypeScript as well. MongoDB is a fine choice for a database as well, as it does not pose much of a hassle to setup.

READ MORE
14 upvotes·19.9K views
View all (4)

We are loving react as it has helped us significantly increase our feature production speed (to make founders' life a little easier by helping them build powerful and effective funding decks that actually raise money quickly.)

Before using react, we were explicitly redeveloping a lot of components which were already existing in react, although we didn't had enough bandwidth to shift our whole app to react, we went in slowly block by block but now we are there, and we are really happy with react.

So we really suggest our fellow developers to take the leap if you are in a similar situation.

READ MORE
6 upvotes·26.1K views
Growth Product Manager at Brainboard·

We decided to create a custom dashboard with Metabase as it can pull any data, push data onto a visualized and comprehensible graph and pushed it to all our team to monitor. The best decision we made till now :) Plausible is still used as Google Analytics alternatives because of its UX/UI. HubSpot is a great tool for sales & marketing raw data but true analysis is done on Metabase.

READ MORE
3 upvotes·22.4K views