back to lab notes
learningcompleted2024

CS50 Web Programming

Portfólio de projetos avaliativos da certificação CS50W de Harvard. Backend Django, SQLite/PostgreSQL, frontend Vanilla JS escalando para React.js.

PythonDjangoReactSQLCS50

Specifications

Certificação

CS50W — Harvard/edX

Backend

Python 3 · Django MVT

Banco Dev

SQLite

Banco Staging

PostgreSQL

Frontend

Vanilla JS → React.js

Segurança

CSRF tokens nativos

Tech Stack

Python 3DjangoSQLitePostgreSQLJavaScriptReact.jsDockerNPM

Overview

Projetos avaliativos do curso CS50W da Universidade de Harvard focando em desenvolvimento web moderno: backend com Django (arquitetura MVT), banco SQLite em dev e PostgreSQL em staging, frontend com Vanilla JS escalando para React.js com componentes e hooks de estado. Proteção nativa CSRF em todos os forms e requisições HTTP RESTful. Uso pesado de ORM para modelar relacionamentos multi-tabela (1:N e N:M) em sistemas de seguidores, lances e e-commerce.

Key Features

  • Proteção CSRF nativa em todos os forms e requisições HTTP RESTful
  • ORM Django para relacionamentos multi-tabela (1:N, N:M)
  • Sistemas de seguidores e lances estilo rede social/e-commerce
  • Componentização rigorosa de UI via ciclo de vida React
  • Deploy com Dockerização inicial e gestão de dependências (NPM/PIP)
  • Escalabilidade: Vanilla JS → React.js com hooks de estado

Django ORM — Modelo de Relacionamento N:M

python
from django.db import models
from django.contrib.auth.models import User

class Auction(models.Model):
    title = models.CharField(max_length=200)
    description = models.TextField()
    starting_bid = models.DecimalField(
        max_digits=10, decimal_places=2
    )
    creator = models.ForeignKey(
        User, on_delete=models.CASCADE,
        related_name="listings"
    )
    watchers = models.ManyToManyField(
        User, blank=True, related_name="watchlist"
    )
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ['-created_at']