5 Proyectos de programación para portafolio

5 Proyectos de programación para portafolio
Photo by Danial Igdery / Unsplash

La práctica hace al maestro, una de las palabras que estoy seguro todo el mundo ha escuchado alguna vez en su vida. Y no por nada, es claro que mientras más practiques una habilidad, mucho mayor control y conocimiento tendrás sobre ella.

Es por eso que esta ocasión te traigo 5 proyectos de desarrollo para que practiques tus habilidades de programación y puedas subirlos a tu github o portafolio para que todo el mundo (o reclutadores/empresas) puedan observar tu dominio de programación y desarrollo.

💡
Tener proyectos aunque sea pequeños en tu Github/Gitlab, te ayuda a aumentar la probabilidad de conseguir un buen empleo.

Web Scraper

Aunque este no es un proyecto 100% backend, pero si tiene muchas nociones de esto. Imaginemos que te vas a mudar a X ciudad y estás buscando departamentos para rentar o comprar, pero existen una gran cantidad de recursos para buscar y todos ellos incluso son los mismos pero diferentes precios, entonces no quieres realizar la búsqueda a mano.

Aquí es donde entra el Web Scraper a tu ayuda, realizando uno y pasándole una URL del sitio el cual quieres obtener la información por ejemplo:
1. Precio
2. Dirección
3. Fotos
4. Características
5. Recamaras
6. Tamaño
7. Baños
8. Etc
Son muchas cosas las cuales puedes obtener haciendo scraping al sitio, una vez que tenga desarrollado tu scraper, ahora puedes correrlo y guardar esa información, ya sea en una base de datos local o utilizando la API de Google Sheets para tener un registro. Después, puedes limpiar tu información y aplicar ciencia de datos para generar gráficas de cuales son por ejemplo las zonas más caras, con más recamaras, de más tamaño y un montón de cosas más.

Tecnologías:
1. Lenguaje de Programación (El de tu agrado)
2. Alguna librería para hacer scraping o bien, hacerlo en código puro.
3. Una base de datos, de preferencia relacional (o Google Sheets)
4. Si lo quieres subir a la nube (DigitalOcean) puedes generar un cronjob para que se ejecute de manera recurrente cada cierto tiempo.


URL Shortener

Este es uno de los mejores proyectos y más sencillos que puedes realizar, puedes tomar de ejemplo cualquiera escribiendo el nombre en Google, para tener inspiración.

Con este proyecto, tu aplicación deberá ser capaz de acortar una URL más larga que se le pase como valor, así como también, tener métodos de Autenticación (Registro y Login) y Autorización (Token) para que un usuario registrado pueda acortar URLs y tenerlas guardadas.

El proyecto puede constar de dos partes:
1. Backend
2. Frontend
Si eres más de backend, puedes únicamente desarrollar completamente la API sin necesidad de que tenga un Frontend para consumirla.

Tecnologías:
1. Lenguaje de Programación para Backend (El que domines)
2. Lenguaje para Frontned (JavaScript/TypeScript)
3. Base de Datos (Cualquiera relacional como PostgreSQL o SQLite)

Características extra:
1. Que a las URLs acortadas se les pueda poner una fecha de expiración.
2. Que a la URL se le pueda poner una contraseña para poder acceder.
3. Obtener métricas, por ejemplo, cuantas veces se ha abierto X URL.


ToDo List

Aunque no lo creas hay muchas personas allá afuera que utilizan y llevan parte de su vida gracias a una lista de "ToDo's" o cosas por hacer (me incluyo). Es uno de los proyectos más básicos y fáciles de realizar ya que cuenta con pocas funcionalidades, pero te ayudará muchísimo a entender y mejorar más cosas del lenguaje que estés aprendiendo o mejorando.

El proyecto también puede contar de dos partes o incluso tres:
1. Un Backend
2. Un Frontend
3. Un Aplicación Móvil

Tecnologías:
1. Para el backend puedes utilizar el lenguaje que mejor domines, casi ya todos te permiten realizar backend.
2. Para el frontend no hay mucho por escoger pero, si ya sabes un framework, puedes comenzar a aprender o probar otro, si ya usar React, puedes aprender Vue.
3. Para la aplicación hay más cosas para escoger, si quieres realizar aplicaciones hibridas y tenerla en ambas plataformas (iOS y Android), entonces opta por Flutter, de lo contrario, puedes utilizar sus lenguajes respectivos para aplicaciones nativas Swift para iOS o Kotlin para Android.

*Este es un proyecto más para full-stack


Aplicación Web

Este es un proyecto más orientado a las personas que están aprendiendo o quieren aprender desarrollo frontend. A lo largo de internet existen múltiples APIs que son gratis para ser consumidas desde ya sea una aplicación web o móvil, como por ejemplo para obtener el clima, y es de lo que hablaremos en este punto

El proyecto consta esencialmente de una parte que sería el desarrollo frontend, ya que la parte de "backend" o de servicios e información que brinda, ya está hecha y sólo te exponen una serie de endpoints para que puedas consumir dicha información.

Tecnologías:
1. JavaScript/TypeScript
2. ReactJS o VueJS

Aunque puede ser una aplicación sencilla, tú puedes hacer e implementar diseños y características que más te gusten, como por ejemplo, en lugar de que escribas el código postal o la ciudad que quieres saber el clima, utilizar la geolocalización del navegador y por ende del usuario para obtener el clima de manera automática.


Un BOT

Esto es algo que seguramente ya has visto, utilizado o incluso desarrollado, ya es algo muy común ver e interectuar con bots, ya sea en Facebook cuando preguntas por algo y te responden de manera automática o en Telegram y Whatsapp.

Este es un proyecto un poco más avanzado que lo básico, pero de igual manera es muy entretenido de hacer, en especial realizar uno en Telegra, con BotFather.

Imágina que ya tienes un servicio de backend realizado y obtiene y guarda información que estás scrapeando de alguna página o que simplemente tu servicio genera y quieres consultar esa información de la manera más sencilla como recibir un mensaje en Telegram. Pues de esta manera lo puedes hacer.

Tecnologías:
1. Lenguaje de programación que domines, casi todos funcionan para este propósito pero, si te puedo recomendar uno que destaca, es Python.


Conclusión

Como pudiste observar, hay muchas pero muchas cosas por realizar si es que no tenías claro que hacer para seguir aprendiendo o perfeccionar tus habilidades de programación. El realizar proyectos como estos y de manera independiente, te ayuda enormemente a mejorar y si los expones en tu portafolio, incluso te puede ayudar a conseguir un trabajo o proyectos.

Todo es cuestión de un poco de imaginación y el querer aprender.