Com o surgimento do trabalho remoto, às vezes queremos sair de casa para trabalhar em um espaço diferente. Ou então, durante uma viagem, precisamos de um lugar para trabalhar.
Quem melhor do que nós mesmos para mapear esses lugares?
Esse projeto visa criar uma plataforma para inclusão de espaços de coworking em qualquer lugar no Brasil e no mundo.
Nota: Essa documentação está em desenvolvimento, e sofrerá alterações ao longo do tempo.
Usaremos Go como tecnologia para o back-end.
Criaremos uma API REST usando um router simples, porém um dos mais famosos e utilizados, o Gorilla Mux.
Nosso intuito é fazer uma API completa, com todos os endpoints CRUD, middleware de autenticação, CORS, cookies.
Vamos usar PostgreSQL como banco de dados.
É um banco versátil e robusto, com inúmeras opções de hospedagem, inclusive gratuitas.
Mostraremos 3 serviços com deploy gratuito: Supabase, Neon e fly.io.
Usaremos o Leaflet para mostrar os escritórios de coworking próximos ao usuário.
É uma alternativa ao Google Maps que possui as funcionalidades que precisamos e pode integrar com inúmeros mapas como Mapbox, OpenStreet, etc.
Nossa busca usará o Algolia. Um provedor de busca muito eficiente e também com um free tier generoso.
Vamos usar Redis.
Mostraremos como utilizar o serviço gratuito da Redis Cloud e também da Upstash.
Para autenticação, temos duas opções Open Source.
A razão pela escolha do Keycloak é para mostrar como utilizar uma ferramenta de mercado, self-hosted.
Quebraremos o front-end em algumas partes.
Para a landing page usaremos Astro integrado ao Strapi.
Criaremos um sistema de componentes no Strapi e renderização no Astro, permitindo criar Landing Pages de forma rápida e sem a necessidade de desenvolver.
Nosso blog, onde usuários poderão publicar artigos a respeito de trabalho remoto, também usaremos Astro integrado à outro CMS.
Para a nossa documentação de usuário e possíveis integrações para desenvoldores, usaremos Astro com o template Starlight.
A princípio, usaremos arquivos Markdown no próprio repositório, mas podemos avaliar a migração para um repositório próprio controlado com um CMS, por exemplo, o Tina.
Para o dashboard (nossa área logada) usaremos Nuxt com SSR.
A escolha de Nuxt é para mostrar a versatilidade do Vue para desenvolvimento web.
Construiremos um PWA para ser utilizado como Mobile App.
Usaremos essa abordagem, a princípio, pois trará as funcionalidades que os usuários precisam, sem a necessidade de um app nativo.
Ao final do projeto, teremos um aplicativo funcional aplicando todo o ciclo de desenvolvimento, da concepção ao deploy.