teleren/devto huggingface dataset:
Need feedback for the new SaaS Boilerplate
Tags: saas, react, django, aws
Published: 2022-03-15 11:57:16

Hi everyone! With this post, I would like to introduce our new SaaS Boilerplate and ask for straightforward feedback about the product: https://www.producthunt.com/posts/saas-boilerplate-2

What is a SaaS Boilerplate? 

It’s the developer’s way out of the vicious circle of redeveloping dull basic features. To be more precise, it’s a dev’s starter kit that helps set up a new project in just 3 days using React and Django.  

How does it work? 

Our SaaS Boilerplate is built on AWS infrastructure with CI/CD ready to set up and is possible to integrate with Stripe and Contentful. The list of its features includes:

- CRUD functions (create, read, update and delete),
- Authorization (including OAuth and email verification),
- Transactional emails (out-of-the-box creator, templates, and scheduling), 
- Monthly subscriptions and one-time payments (free plan implementation included), 
- CMS integration,  
- E2E testing of all features during deployment.

We'll be extremely grateful if you watched the demo video and shared your feedback in the comments: https://www.apptension.com/saas-boilerplate?utm_source=dev-to&utm_medium=referral&utm_campaign=dev-cite
Building a business from scratch - day 5
Tags: webdev, career, devjournal, tutorial
Published: 2022-03-15 11:45:29

Welcome to day five of the [useaffiliates.com](http://useaffiliates.com/) build log! This series covers my journey of building a business from scratch in public. If you missed day four, you could [check it out here](https://www.twankrui.com/blog/building-a-business-from-scratch-day-4). I also uploaded today's [Twitch stream](https://twitch.tv/twankrui) to [YouTube](https://www.youtube.com/watch?v=e3XFdgGEw38) if you want to watch the replay.

## You are linking to the wrong domain, you silly goose! 🙄
I have to admit something, I got fired up (call it triggered) by a comment on Indie Hackers by someone who told me, "YOU KEEP POSTING THE WRONG LINK, ARE YOU SURE IT'S THE RIGHT ONE!?". Although I have done stupider things before, I won't post the same faulty link in 4 updates without notice. So I stretched my fingers and wrote back this in response:

> That's because I am still designing the project! But this confirms that I need to set up a "coming soon" page. 🚀

I mean, the man was right; it's a little silly to mention a domain that links to a blank page. So I took a couple of hours to set up a coming soon page:

![Convertkit landing page](https://imgur.com/pQKmUIT.jpg)

### Convertkit to the rescue! 🦹‍♀️
After going through several email marketing tools (Revue, HubSpot, Drip), I decided to try out ConvertKit. They have a landing page feature, which I was looking for as a temporary solution.

The process was pretty straightforward. I tried out a couple of templates tweaked the fonts and colors until finally deciding on a template that I could style the most towards my liking and the branding of the project.

It's not up for long, but at least this gets rid of the white page. If you want to, you can check it out now! If you are an absolute legend and want to stay updated on when we launch, sign-up for the newsletter! [https://useaffiliates.com](https://useaffiliates.com/)

## We finished migrating the database in front of 40 people. 👀
The first time I got raided (someone was sending over their viewers after stopping their stream) on Twitch, and there I was validating the data for [BassPro](https://www.basspro.com/). I have no clue why so many viewers kept watching while I was navigating my way through a fishing store trying to find their affiliate program. I guess they just really liked fishing (lol) 🐟.

However, we finished migrating the old database by the end of today! Sixty rows are now in the new database, which isn't enough in my eyes, so before we launch, I will do a scavenger hunt for more affiliate programs. My goal is to launch with at least 100 affiliate programs, so there is quite some work left to do in that department!

## Let's get coding! ⚙
Now that we have the design, (part of) the content, and a coming soon page, it's time to get started with coding the actual platform! We will use NextJS, TailwindCSS, and the @notion/client package.

Thanks for reading this short build log, and I hope to see you tomorrow!

Have a great day!

With love,

Twankrui
Distributed Transactions across cloud databases.
Tags: azure, distributed
Published: 2022-03-15 11:37:31

**Installation and migration**
The capabilities for distributed database transactions are provided through updates to the .NET libraries System.Data.dll and System.Transactions.dll. The DLLs ensure that two-phase commit is used where necessary to ensure atomicity. To start developing applications using elastic database transactions, install .NET Framework 4.6.1 or a later version. When running on an earlier version of the .NET framework, transactions will fail to promote to a distributed transaction and an exception will be raised.

Both SQL Database and SQL Managed Instance support client-side development experiences in C# and .NET. A server-side experience (code written in stored procedures or server-side scripts) using Transact-SQL is available for SQL Managed Instance only.

A server-side distributed transactions using Transact-SQL are available only for Azure SQL Managed Instance. Distributed transaction can be executed only between Managed Instances that belong to the same Server trust group. In this scenario, Managed Instances need to use linked server to reference each other.

![Distributed Database Transaction](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6vqbpd367xx3r9ke1omt.png)
 
![Distributed Sharded Database Transaction Example](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6u4hdph7ma655ymjlqi2.png)
Kali Sweet theme
Tags: security, linux, cybersecurity, fikrado
Published: 2022-03-15 11:35:44

I have a github repo that conting sweet theme for kali linux it easy quit simple and easy implementation 

First clone the github repo "git clone https://github.com/fikrado-orgnasation/sweat-kali"

Second cd to the directory and run the install.sh file with sudo "sudo./install.sh"


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r92kdv4dmebzusexjwjl.png)

Finally go to apperance and then chose sweet from the themes and candy icons from icon theme.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i1s1218buwdm6b38sq4d.png)
00-Cloud Solution Architect Role Career Series Introduction
Tags: cloud, career, architecture
Published: 2022-03-15 11:31:23

[Subscribe Channel](https://www.youtube.com/c/TechTalksWriju?sub_confirmation=1)

[Playlist](https://www.youtube.com/playlist?list=PLPIVZsyfpXt8UyEq9EV2F5EksIICZemDR)


https://youtu.be/_5b2bOgLyfM
{% youtube _5b2bOgLyfM %}
Mega Flask Tutorial for beginners & advanced 2022
Tags: python, webdev, beginners, flask
Published: 2022-03-15 11:20:29

This Mega Flask Tutorial aims to provide both basic and advanced concepts of the Python Flask framework. This Flask tutorial is designed for both beginners and professionals.

Python Flask framework is very light weight framework for making useful web applications in python. It is developed by Armin Ronacher, an Australian open source software programmer.

## What is flask?
As we already discussed, this framework is used for making web applications and it is very lightweight. It is based on WSGI toolkit and jinja2 template engine. As it is a lightweight framework that is why it is considered as a micro framework.

## What is WSGI?
WSGI or web server gateway interface is used in python for the development of web application. For the universal interface, It is considered as the specification between the web application and web server.

## What is Jinja2?
Jinja2 is a web template engine which combines a template with a certain data source to render the dynamic web pages.

## Prerequisite
To understand the concepts of Flask, you must have the basic knowledge of Python concepts.

## Audience
Our Mega Flask tutorial is designed for both beginners and professionals.

Read the Full article:- [Mega flask tutorial](https://techwithpie.blogspot.com/2022/03/mega-flask-tutorial.html)
Nextjs - Nodemailer - React Hook Form - Tailwindcss
Tags: nextjs, nodemailer, tailwindcss, reacthookform
Published: 2022-03-15 11:18:23

Here is the complete example of contact us form using nextjs, nodemailer, reacthookform and tailwindcss. 


[https://github.com/Usmanasif1997/nextjs-nodemailer](https://github.com/Usmanasif1997/nextjs-nodemailer)
Introducing Flotiq Components Library
Published: 2022-03-15 10:37:24

After the announcement of our fresh [Flotiq rebranding](flotiq.com), we decided to create [Flotiq components library](https://flotiq.github.io/flotiq-components-react/?path=/story/flotiq-components-for-react--page) and make it available for everyone who wants to develop and create professional products with us.
![flotiqComponents](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p906zys786x8i50r6ttj.png)
   
Flotiq components have been designed and implemented with the TailwindCSS framework to meet the needs of most users. All our components are part of a library focused on supporting the development of Flotiq products. 

Now, you can build many professional projects with Flotiq in a quick and easy way. 

Flotiq Components are free to use. 

**Let’s improve Flotiq together.** 
Here's how you can help us: 

- Share any feedback with us
- Share what features you'd love to have in our [public roadmap](https://flotiq.productlift.dev/)
- Share the projects you built with Flotiq at hello@flotiq.com
We appreciate each message and piece of feedback that you share. 
 

Stay safe and stay with us for more updates!
Solving the FizzBuzz exercise with TDD
Tags: tdd, kotlin, unittest, fizzbuzz
Published: 2022-03-15 10:34:45

Test-Driven Development (TDD) can be a scary concept to hear at first. 

How are you supposed to write code that test your code... even before it even exists?

Well, yeah. It can be done and it's a really awesome way of writing code.

Some of the benefits of TDD are: 

1. The code coverage will (most of the time) be pretty high.
2. There won't be more tests "to write later".
3. You can refactor your code with more confidence since there should be a bunch of tests that will make sure you don't break anything.
4. The code will be testable from the beginning because you would not be able to do it without it from the get go.
5. Probably a few more that I can't remember right now 🤓

Alright, enough chitchat. I've decided to do it while solving a well-known interview question/exercise named FizzBuzz on this video:

{% youtube https://youtu.be/pUELmNADwMQ %}
Routes
Tags: api, routes, expressrouter
Published: 2022-03-15 10:32:10

A route is a code that represents an HTTP action, *(GET, POST, PUT, DELETE)*. It has a URL endpoint, and a function that is used to handle when that endpoint is accessed.

We use postman to test these endpoints. Accessing these endpoints prior to setting up the code will return a 404 NOT FOUND - a html response.

Lets look at the code for a GET request at greeting endpoint.
We call the get method on the app object, passing in two arguments
* The Endpoint.
* The function to handle this endpoint. It takes in a request and a response object as parameters.

```
app.get('/api/greeting', (req, res) => {
    res.send('Hello there, Welcome!')
} )
```
Now, if we access the route, we get a 200 OK status and the String "Hello there...." is returned.

Usually we are gonna return JSON data. So the above code could be changed to 
```
app.get('/api/greeting', (req, res) => {
    res.status(200).json({message:'Hello there, Welcome!'})
} )
```

We also set the status, although not necessary. Now we respond with a JSON object and the content type of the response changes from html to application/json. Even though we didn't add quotes on the key "message", it get parsed into JSON. 

---

Now we don't wanna clutter our server.js file with all these routes. So we clean it up.

In the backend folder, we create a folder called 'routes' and in it we create file greetRoutes.js. So basically each resource in API will have it's own route file.

Folder structure : backend/routes/greetRoutes.js

Now to use the express router, we are gonna first bring the express into this file.
```
#greetRoutes.js

const express = require('express');
const router = express.Router();

router.get('/', (req, res) => {
    res.status(200).json({message:'Hello there, Welcome!'})
} )

module.exports = router

```
and inside server.js
```
#server.js
....
app.use('/api/greeting', require('./routes/greetRoutes.js');
...
```

So now, if we hit /api/greeting, it's gonna look into the Route file, and all we needed was a / because /api/greeting is already specified.

Similarly, we can create other routes for POST, PUT, DELETE.
Some of them will require a :id in the endpoint part so that they access the right data point. `router.put('/:id', (req,res) => {....})`

Next up, Controllers. Again to clear the clutter!
Don't let Google refresh token expire
Tags: github, actionshackathon, webextension, devops
Published: 2022-03-15 10:26:17

In this part we will finish setting up workflows related to publishing the extension on Google Web Store and create the workflow that isn't shown on [the workflow diagram](https://dev.to/cardinalby/releasing-webextension-using-github-actions-part-2-of-5-27d3) because it stays aside and isn't included to the main pipeline.

Dealing with Google API credentials we should be aware of the fact that, according to [Google's guide](https://developers.google.com/identity/protocols/oauth2#expiration), refresh token (which we use in the workflow from the previous part) might stop working if it has not been used for six months. And I can assure you, it happens 😞.

To solve the issue we can use a great option GitHub offers called ["schedule event"](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule) for workflows.  

_.github/workflows/touch-google-refresh-token.yml_ :

```yaml
name: Touch google token
on:
  schedule:
    - cron:  '0 3 2 * *' # At 03:00 on day-of-month 2
  workflow_dispatch:
jobs:
  fetchToken:
    runs-on: ubuntu-latest
    steps:
      - uses: cardinalby/google-api-fetch-token-action@v1
        with:
          clientId: ${{ secrets.G_CLIENT_ID }}
          clientSecret: ${{ secrets.G_CLIENT_SECRET }}
          refreshToken: ${{ secrets.G_REFRESH_TOKEN }}
```

Here I assume that you have already obtained and have added values required for Google API access to secrets (as it described at the previous post).

Once a month GitHub will run our workflow and perform the single step: fetching access token using the credentials that we have already added to _secrets_ (see the previous post). It will prevent refresh token from invalidation.

_**One note here:**_ GitHub will suspend the scheduled trigger for GitHub Action workflows if there is no commit in the repository for the past 60 days. The cron based triggers won't run unless a new commit is made. Probably, you can use the same trick (committing to the repo once a month by schedule) to circumvent this limitation.
Bug Reporting in Testing with Best Practices
Tags: softwaretestingcompany
Published: 2022-03-15 10:23:38


In a software testing industry, a bug is a defect, error, fault that can cause an issue or incorrect results while using any software application or product. In other words, a software bug is a defect or an error that gives inappropriate results. Bug Reporting is imperative for the software testing life cycle, with that reports the developers could solve and fix the issue. When the software is not working properly as it should be, then the software implies that there is a bug in that software application or product. A bug report is a document that helps in communicating with the developers which part of the software application is not working as expected and to solve the issue in the software product. A tester not only helps a developer by providing a bug report to fix and resolve it but also by reducing the chance of a bug reaching the production phase or in the market. The software bug reporting in testing should consist of enough information that helps the developer to fix and solve the exact issue on time. If the bug report is not in a way that the developer can understand, then the developer will not be able to reproduce the bug.

For ensuring that the quality of the bug report is good enough then have look at some best practices for bug reporting in testing: 


Easy Bug Reporting

Developers only want that the bug report should be in an easy and simple format, then only they will be able to understand and fix the bug properly. Do not write a too-long description of the problem.


Use proper language

The bug report should be in a proper language through which the developer can understand the exact issue of an application or any software product. Make sure that the report should not have any ambiguity and misrepresentation. The bug report should contain simple sentences to describe the bug.


Early bug report

If the bug is identified then make sure that the bug report should be given early to the developers so that they can fix the bug and the product will reach the market as early as possible. 


Clear and specified bug report

The first and foremost thing is that when you identify the bug then that software bug reporting should be clear, specific, and to the point, so developers would not face any difficulty in fixing the bug. Do not write an essay about the problems on the bug report, the report should be in a summarized way in minimum words and contain all the information required.


Reproducible bug

Do not skip or forget to mention the steps of reproducible bugs. The bug will never get fixed or resolved if the bug is not reproducible. It will be easy for the developer if the bug is clearly mentioned and described step by step. 


When it comes to the software bug report as you clearly mentioned the test data details and described it step by step then developers love your bug reports. 

[https://www.fleekitsolutions.com/            
](https://www.fleekitsolutions.com/            
)
Experience level filter and salary estimates
Tags: insights, machinelearning, news, career
Published: 2022-03-16 13:41:36

---
title: Experience level filter and salary estimates
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vu094nbdedvkdail1t9c.jpg
published: true
date: 2022-03-15 10:20:13 UTC
tags: Insights, Machinelearning, News, Career
canonical_url: https://insights.ai-jobs.net/experience-level-filter-and-salary-estimates/
---
We noticed that there is an increasing demand with job seekers for entry level roles in particular, and since we had experience levels as attributes on most jobs ads already, we now added an additional filter for this. It has been added to the job email form as well.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e7bu0c4lcrprk2qb9p32.png)

That way it’s easier now to match results by experience level, which actually makes a lot of sense for candidates and recruiters alike.

## Salary estimates are live now

We also manged to launch our salary estimates in job list and detail views – finally, yay! It shows a suggested salary range for all jobs where there’s such info missing, and where we’re able to match certain attributes of the role with the data available in our [salaries database](https://salaries.ai-jobs.net/).

When there’s a match you’ll see salary range values (in USD for all matched listings) attached to the job ad marked with an asterisk ‘*’. This indicates that it’s an estimate and only for guidance and not salary info submitted by the hiring company.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y7se9t5l2ju9947avnus.png)

Of course this should be taken with a grain of salt as we don’t have enogh data yet to make this super-accurate. But if you like, you can help us (or nudge your colleagues) by anonymously submitting your salary info to the database (it’s also in the Public Domain, so everyone benefits): [salaries.ai-jobs.net](https://salaries.ai-jobs.net/)

We’re currently trying to keep or even increase the pace of improvements and future changes to our job platform, so stay tuned and thanks for using and recommending [ai-jobs.net](https://ai-jobs.net) 😉

The post [Experience level filter and salary estimates](https://insights.ai-jobs.net/experience-level-filter-and-salary-estimates/) appeared first on [ai-jobs.net Insights](https://insights.ai-jobs.net).
Promo Paket Wisata Pulau Tidung Kepulauan Seribu Harga Murah
Published: 2022-03-15 10:14:52

**[Promo Paket Wisata Pulau Tidung Kepulauan Seribu Harga Murah](https://www.visit-tidung.com/)** meriah terbaru. Pulau Tidung merupakan sebuah pulau kecil yang terletak di gugusan Pulau Seribu wilayah Jakarta Utara Indonesia.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ax6fm9ytov5cp221k08q.jpg)
Keindahan panorama alam berupa pantai dan laut menjadi daya tarik tersendiri bagi tempat wisata yang satu ini dan menjadi salah satu icon wisata terkenal di Jakarta.

## **Harga Paket Wisata Pulau Tidung Murah**
Citra Tidung Travel sebagai salah satu agen tour & travel Wisata Pulau Tidung Kepulauan Seribu, menawarkan berbagai ragam Paket Wisata Pulau Tidung Murah.
**[Paket wisata Pulau Tidung Murah Citra Tidung Travel](https://profil.web.id/harga-promo-paket-wisata-pulau-tidung-murah/)** Mulai dari paket wisata 1 hari atau one trip Pulau Tidung dengan harga paket wisata mulai dari 200 - an ribu rupiah saja. 
Selain paket wisata khusus 1 hari, Citra Tidung Travel juga menawarkan **paket wisata Pulau Tidung 2 hari 1 malam**, **Paket wisata Pulau Tidung 3 hari 2 Malam**, **paket study tour** untuk sekolah, **paket outbound Jakarta murah**, **Paket honeymoon Pulau Seribu** , Paket ghatering atau Outing untuk kantor, instansi maupun perusahaan dan masih ada beberapa paket wisata pilihan lainnya. Anda juga dapat menentukan jenis paket wisata sendiri (paket wisata custom).
Untuk informasi lebih lanjut silahkan kunjungi website resminya Citra Tidung Travel Pulau Seribu: **[VISIT-TIDUNG.COM](https://www.visit-tidung.com/)**
Use the filter MongoDB positional operator nested array
Published: 2022-03-15 09:49:52

MongoDB provides a filter positional operator $[<name_of_filter>] to only update some elements in an array. If you want to update all the elements in the array, use the all positional operator in MongoDB to update all elements in an array.

You must define the filters to use in a property called arrayFilters.

With the following data inserted into a collection called games:

`db.games.insertMany(
	{
		name: "Genshin Impact",
		reviewScores: [8, 6, 9, 5]
	},
	{
		name: "Factorio",
		reviewScores: [7, 7, 10, 8]
	},
	{
		name: "Bloodborne",
		reviewScores: [9, 8, 9, 9]
	}
)`

For the game Genshin Impact, increase all the reviews by 1 that are less than 9.

`db.games.updateMany(
	{ name: "Genshin Impact" },
	{ $inc: { "reviewScores.$[reviews]": 1 } },
	{ arrayFilters: [
		{ "reviews": { $lt: 9 } }
	]}
)
`

Notice in the $inc update operator, we reference the array filter defined called reviews to tell MongoDB which elements to update.

`{
	name: "Genshin Impact",
	reviewScores: [9, 7, 9, 6]
},
{
	name: "Factorio",
	reviewScores: [7, 7, 10, 8]
},
{
	name: "Bloodborne",
	reviewScores: [9, 8, 9, 9]
}
`

share this MongoDB positional operator nested array guide and follow for more informational content