Working to be a creative person…
Tags: softskills, react, productivity, d
Published: 2022-10-24 23:22:58

> I always have been in love about some “special characteristics” from my professional career, maybe my favorite is the possibility to be a creative person

As computers professionals we have an incredible influence in the business scenarios for entire companies, our decisions could have consequences in other departments besides engineering, and even for the financial perspective.

A couple of years ago I understand how from our computer we can impact the life of thousands of people, as software developers, always our main goal is related to improve the user experience, we are constantly asking similar questions: “how can we do this possible?”, “is possible to improve this transaction for users?”, at the end of the day, this is also the idea for web-sites, applications and other software products.

### Creative skills
Something that I like to promote are my creative skills, I’m constantly looking for opportunities to create a software solution for some personal requirement, understanding that this is a good way to learn, practice and also, I believe than some day this could be a good solution for thousands of other people.

A couple of weeks ago I was talking with friends about the Soccer World cup, it is coming on November 2022, so we started looking for some app to control and manage data for a common game about predictions, this is very common for some countries in Latín América, this game name is called QUINIELA.

I realized that maybe this could be good opportunity to create my own app for that, so I started thinking about how could be my ideally app, what and how should be the implementation, and then I was motivated to start working on that.

###Benefits
Even when I have been working with software for the last 12 years, is very exciting to start doing things that I don’t do frequently, it’s common to aboard projects with technology stacks very defined, and also with guides or a list of defined “how to” do different thing, because of that we don’t need to define a lot of implementations, rules, or new ways to work.

This kind of projects are a great opportunity to working in that implementation that we read and did not have space to do, or maybe to be familiar with some new library, or just get up to date with the new released version of some know library.

This is also a great scenario to discover new things, we can not understand from the beginning the impact about to start doing something by our own, at some point we are going to need something and the only possible way is to investigate, trying to figure it out how to do it, and this is how I discover new possibilities with Vercel, Next.js, Firestore and some other new things, I love this part of the process.

## What I did? — My own app
This is how I started creating my own game — its name is QUINIELA-CR

It’s basically a prediction game, as a player, you should introduce a score for each game in the tournament, you are going to get points according to you accuracy, it’s very fun when you play this with friends, because everyone is thinking, and watching the games from a different perspective, “how to win points”.

### Technology Stack
The tournament is close to start, so I define to use know technologies like React and Typescript, however, I also used this time to practice with some libraries that I do not use daily, but not everything was old, I discovered some new tools, implementations and ways to work.

Here is a list of technologies and libraries that I used:

- React
- React hooks
- TypeScript
- React router
- Styled components
- Redux
- Vercel
- Firestore — Real time data
- Git
- And, other additional libraries and services

### How do I started?
My first step was to define the data-base structure, I decide to use Firebase, this is a non-relational data base from Google, this was the first interesting thing that is different according with my daily work as developer.

> Something very interesting was to think in order of “how the app is going to display data”, is different than think in object-relational model.

A new challenge was to discover a new way to host, and release my app, I start using Vercel, I have beed reading about it, so it was a good time to test it.

After that, I started working in the project, using React and Typescript to define the project, adding redux to have a state in the project, handling actions and effects, it was a very nice process, I discovered new solutions from my last time working with redux and hooks, always is nice that satisfaction feeling about to learn how something new it’s working.
I was working two weeks on nights, I created my first version, now it was a good moment for QA, obviously I did not have QA resources, so I used my friends as testers, the are my “final client”, so if this version works for them, it will be a success.

This was really useful, they discover some pending things, or even some bugs that I introduced, this is something normal, but even for them it was a really good experience, they been part of some “software definition”, sometimes we can promote something new in people, this is part of create software.

### The application

> Here are some screens, this is how the application looks like

The login a register screens, as any other app, you are going to have the option to login into the game.

![Login to the application](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v32wcnwdqtfmjn3imdpt.png)

As a player, after login in the app, you will see this screen to introduce your prediction for each game, you can set the amount of goals for both teams, and then you wait until the game finish, according to the result you will get points.

![Screen to introduce scores](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2txjg9v3xuwypnw06pf7.png)

The application also has a screen to see the positions table, at the end of the tournament this table will define the winner.

![Screen for positions table](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6ajfe5rzk4wpqi90u6ay.png)

Besides these screens, in the app we have other sections to players:

1. Customize the app, defining name, username, password an other values.
2. Other options for admins, to manage the application, create games, introduce games, maintain players, and many other functionalities.

The application is small, but at the end of the day the most important is all the factors around the app itself.

Always we can add new value, new functionalities, but at the end we should understand that this is a workin in progress, this kind of things happens in software.

## Conclusion
My friends and I — Now we are ready, we are waiting for the world cup tournament, this time it will be a different experience for us, because we are expecting for the experience to use the app that we created.

> “The results you achieve will be in direct proportion to the effort you apply.” — Denis Waltley

My conclusion is, be creative is something really useful as software professionals, sometimes we don’t know how this could improve our professional career, but been working in this kind of projects like this application, is a great experiment time, is like to create our own playground for coding, we are free to try, to prove, and even to fail.

This kind of process works to discover and understand the capacity of us, is really nice the have this in mind. I’ll continue looking for the new opportunity to came software solution in my real life.