Introducció

En aquest mòdul final, aplicaràs tots els coneixements adquirits al llarg del curs per desenvolupar un projecte complet en Go. Aquest projecte servirà com a demostració pràctica de les teves habilitats i et proporcionarà una experiència real en el desenvolupament d'una aplicació des de zero fins al desplegament.

Objectius del Projecte

Els objectius principals d'aquest projecte són:

  1. Aplicar Conceptes Bàsics i Avançats de Go: Utilitzaràs variables, funcions, estructures de dades, gestió d'errors, concurrència, interfícies, i altres conceptes que has après.
  2. Desenvolupament Web: Construiràs un servidor web, implementaràs enrutament, middleware i treballaràs amb plantilles.
  3. Interacció amb Bases de Dades: Connectaràs a una base de dades, realitzaràs operacions CRUD i utilitzaràs un ORM.
  4. Desplegament i Manteniment: Construiràs i desplegaràs l'aplicació, implementant pràctiques de registre, monitorització i seguretat.

Descripció del Projecte

Aplicació de Gestió de Tasques

Desenvoluparàs una aplicació web de gestió de tasques que permetrà als usuaris crear, llegir, actualitzar i eliminar tasques. L'aplicació tindrà les següents funcionalitats:

  1. Autenticació d'Usuaris: Els usuaris podran registrar-se i iniciar sessió.
  2. Gestió de Tasques: Els usuaris podran crear, veure, editar i eliminar tasques.
  3. Filtratge i Ordenació: Les tasques es podran filtrar i ordenar per diferents criteris (data, prioritat, etc.).
  4. Interfície d'Usuari: Utilitzaràs plantilles HTML per crear una interfície d'usuari amigable.

Estructura del Projecte

Backend

  1. Servidor Web: Utilitzaràs el paquet net/http per construir el servidor web.
  2. Enrutament: Implementaràs enrutament per gestionar diferents rutes de l'aplicació.
  3. Middleware: Crearàs middleware per gestionar l'autenticació i altres funcionalitats.
  4. Gestió de Tasques: Implementaràs les operacions CRUD per les tasques.
  5. Base de Dades: Utilitzaràs una base de dades SQL (com PostgreSQL) per emmagatzemar les dades dels usuaris i les tasques.

Frontend

  1. Plantilles HTML: Utilitzaràs plantilles HTML per generar les pàgines web.
  2. CSS i JavaScript: Pots utilitzar CSS per estilitzar les pàgines i JavaScript per afegir interactivitat.

Requisits del Projecte

Tecnologies

  • Go: Llenguatge de programació principal.
  • PostgreSQL: Base de dades relacional.
  • HTML/CSS/JavaScript: Per al frontend.
  • Docker: Per a la contenedorizació i desplegament de l'aplicació.

Estructura de Directori

task-manager/
├── cmd/
│   └── main.go
├── internal/
│   ├── auth/
│   ├── handlers/
│   ├── models/
│   └── db/
├── web/
│   ├── templates/
│   ├── static/
│   └── css/
├── Dockerfile
├── go.mod
└── go.sum

Funcionalitats Detallades

  1. Autenticació d'Usuaris:

    • Registre d'usuaris.
    • Inici de sessió.
    • Middleware per protegir rutes.
  2. Gestió de Tasques:

    • Crear una nova tasca.
    • Veure totes les tasques.
    • Editar una tasca existent.
    • Eliminar una tasca.
  3. Filtratge i Ordenació:

    • Filtrar tasques per data de creació, data de venciment, prioritat, etc.
    • Ordenar tasques per criteris específics.
  4. Interfície d'Usuari:

    • Pàgina de registre i inici de sessió.
    • Pàgina principal amb la llista de tasques.
    • Formulari per crear i editar tasques.

Planificació del Projecte

Fases del Projecte

  1. Planificació: Definir els requisits i l'arquitectura del projecte.
  2. Desenvolupament: Implementar les funcionalitats del backend i frontend.
  3. Proves: Escriure i executar proves per assegurar la qualitat del codi.
  4. Desplegament: Construir i desplegar l'aplicació en un entorn de producció.

Timeline

Fase Durada Estimada
Planificació 1 setmana
Desenvolupament 4 setmanes
Proves 1 setmana
Desplegament 1 setmana

Conclusió

Aquest projecte final és una oportunitat per consolidar els teus coneixements i demostrar les teves habilitats en Go. A mesura que avancis en el desenvolupament, trobaràs reptes que et permetran aprofundir en els conceptes apresos i adquirir experiència pràctica valuosa. Estàs preparat per començar? Endavant!

© Copyright 2024. Tots els drets reservats