Skip to content
Daniel SimonianDesign System
v0.1 · Part 1Next.js 16 · Tailwind 4 · shadcn/ui

Design
System.

The library behind danielsimonian.dev: a portfolio for remote roles, custom systems for businesses and, soon, teaching and a student area. One identity, two voices.

danielsimonian.devDaniel Simonian

Brand

Monogram, wordmark and a single signal-orange accent.

Icons

Lucide, thin uniform stroke; monochrome technology logos.

pnpm dlx skills add emilkowalski/skills
Open to remote roles · UTC-3

Components

Basic, portfolio, solutions and teaching pieces.

Colors

Neutral base in both themes, AA contrast validated.

Compare themes

Light · TE

01 — Ranking BTIn production
Next.jsSupabase

Dark · Linear/Geist

01 — Ranking BTIn production
Next.jsSupabase

01 / 05

Foundations

Primitive palette → semantic tokens → Tailwind utilities. Neutral base in both themes, one signal-orange accent, cobalt for teaching.

Colors

styles/tokens.css

Semantic tokens resolve per theme — toggle the theme to see values change. Components never use primitives directly.

Background & surface

  • --bg…
  • --bg-subtle…
  • --surface…
  • --surface-raised…
  • --surface-hover…
  • --surface-sunken…
  • Aa--surface-inverse…

Text

  • --text…
  • --text-muted…
  • --text-subtle…
  • --text-inverse…
  • --text-disabled…

Border & grid

  • --border…
  • --border-strong…
  • --border-input…
  • --grid-line…
  • --grid-construction…

Brand · signal orange

  • Aa--brand…
  • Aa--brand-hover…
  • --brand-text…
  • --brand-subtle…
  • --brand-border…

Teaching · cobalt

  • Aa--teach…
  • --teach-text…
  • --teach-subtle…
  • --teach-border…

Feedback

  • --success…
  • --success-subtle…
  • --warning…
  • --warning-subtle…
  • --danger…
  • --danger-subtle…
  • --info…
  • --info-subtle…

Primitives

gray
--gray-0--gray-25--gray-50--gray-100--gray-150--gray-200--gray-300--gray-400--gray-500--gray-600--gray-700--gray-750--gray-800--gray-850--gray-900--gray-925--gray-950--gray-1000
orange
--orange-50--orange-100--orange-300--orange-400--orange-500--orange-600--orange-700--orange-900
blue
--blue-50--blue-300--blue-400--blue-500--blue-700--blue-900
green
--green-400--green-700
amber
--amber-400--amber-700
red
--red-400--red-600--red-700
cyan
--cyan-400--cyan-700

Contrast (WCAG AA)

Computed live from the current theme. Text ≥ 4.5:1, UI components ≥ 3:1. Orange fills always carry near-black text.

SampleForeground / backgroundUseRatioAA

Typography

Geist · Geist Mono

One sans for reading and headings, one mono for labels, metadata, numbers and code — the mono is part of the identity. Display is used sparingly.

text-display

44→88 · 800 · -0.045em · uppercase

Signal.

text-h1

32→48 · 700

Systems built to fit

text-h2

24→32 · 600

Featured projects

text-h3

20 · 600

Ranking BT

text-h4

16 · 600

My role

text-body-lg

18 · 400 · 1.6

I build web products end to end and ship them to production.

text-body

16 · 400 · 1.65

Ranking platform for the beach tennis community.

text-body-sm

14 · 400

Supporting text in cards and forms.

text-caption

13 · 400

Caption · updated Sep 25, 2026

label-mono

11 · mono · 500 · +0.08em · caps

01 — Projects · 2022 → now

text-code

13 · mono · 1.7

const ranking = athletes.sort(byPoints)

Spacing

4px base. Sections breathe (64–128px); components stay tight (8–24px).

--space-14px
--space-28px
--space-312px
--space-416px
--space-624px
--space-832px
--space-1248px
--space-1664px
--space-2496px
--space-32128px

Radius & elevation

Generous radii on containers, tight on chips. Depth comes from borders and surface steps; shadows only on floating layers.

radius
xs · 4
sm · 6
md · 8
lg · 12
xl · 16
2xl · 24
pill · 999
elevation
0border only
e1tabs, segmented
e2menus, toasts
e3modals, lightbox

Grid & breakpoints

A 672px reading column (leerob) inside a 1152px page. Content-first; the grid shows through as hairlines, not boxes.

mobile
≥ 360px · 1 col · 16px gutter
tablet
≥ 768px · 2 cols · 24px gutter
desktop
≥ 1024px · 3–12 cols · 24px gutter
wide
≥ 1440px · max 1152 / 1440
prose
max-w-prose-col · 672px

viewport: …px → …

123456789101112

Motion

Emil Kowalski · animate / review-animations

Short and functional. Strong ease-out for enter/exit, never ease-in, nothing from scale(0), UI under 300ms, hover motion only on fine pointers, keyboard actions never animate.

press
140ms · scale(.97)
fast
150ms · tooltip, hover, colour
base
200ms · dropdown, popover, tabs
slow
280ms · modal, drawer, lightbox
enter
400ms · section reveal (rare)
stagger
50ms between items
curves
--ease-out-strong

Enter / exit

--ease-in-out-strong

Move on screen

--ease-drawer

Drawers, sheets

ease (CSS)

Hover, colour

prefers-reduced-motion → sem deslocamento

prefers-reduced-motion: …

Icons & tech logos

lucide-react · simple-icons

Lucide at 1.5–2px stroke for UI. Technology logos are monochrome (currentColor) so the set stays consistent — never full-colour brand logos side by side.

lucide
tech
  • Next.js
  • React
  • TypeScript
  • JavaScript
  • Tailwind CSS
  • Node.js
  • Supabase
  • PostgreSQL
  • MySQL
  • Expo
  • PHP
  • Git
  • GitHub
  • Vercel
  • Cloudflare
  • Docker
  • Stripe
  • Figma

Identity details

section-label · ruler · waveform · grid-frame

The ~20% Teenage Engineering: numbered mono labels, DAW-style rulers as dividers, a waveform texture and construction lines. Details, not a theme.

section-label

01Projects

02 / 05Stack

03Teaching

2022 → now

ruler · waveform
grid-frame · construction
DS.

Rule: at most one identity detail per block. If it hurts reading, it goes.

02 / 05

Basic components

shadcn/ui (Radix) customised with the tokens. Every control has visible keyboard focus, disabled, loading and error states where they apply.

Button

components/ui/button.tsx

Primary is an ink pill (Linear). Brand orange is reserved for the ONE main CTA of a view. Press = scale(.97).

variants
sizes
with icon
icon only
loading · disabled

Hover and focus are live: hover and press Tab to see the orange focus ring.

Text fields

input · textarea · password-input · search-input · field

Field wires label, hint and error to the control (aria-describedby / aria-invalid). 16px text on mobile avoids iOS zoom.

text

As shown on the certificate

e-mail · error
password
disabled
search

⌘ K focuses · Esc clears

textarea
optional

Select, checkbox, radio, switch, slider

Radix primitives
select
checkbox
radio
switch · slider
Users40

Avatar & avatar group

components/ui/avatar.tsx
ABDSDS
ANJPMSLF
+12

Badge, status & tech tag

badge.tsx · tech-tag.tsx

Status always pairs colour with text. Tech tags are mono with an optional monochrome logo.

category
Own productClientDAMA SportsTeachingNewv2
status
In productionIn developmentArchivedLate New module
tech
Next.jsReactTypeScriptSupabaseTailwind CSSVercelPostgreSQLPHP

Tooltip, dropdown menu, accordion

Popovers scale from their trigger (transform-origin), 150ms ease-out. Tooltips skip the delay once one is open.

tooltip
dropdown
accordion

You do. The repository and accounts are in your name.

Alert & toast

alert.tsx · sonner

Toasts (Sonner) confirm actions: copy e-mail, form sent, assignment delivered. Bottom-right, swipe to dismiss, pause on hover.

toast

Modal, drawer & sheet

dialog · drawer (Vaul) · sheet

Modal stays centred (no transform-origin). Drawer uses Vaul: drag to dismiss with momentum, iOS curve. Sheet for side panels (e.g. case study).

Language & theme switchers

locale-switcher · theme-switcher

Radio-group semantics: Tab focuses the group, ← → change the option. Theme has system / light / dark.

03 / 05

Portfolio components

Technical, direct voice for recruiters and developers. English first. Content is the hero; identity lives in labels, numbering and hairlines.

Hero

portfolio/hero.tsx

Two variants for Part 2's prototype picker: display (heavy TE type, used once) and quiet (leerob).

display
Open to remote roles · UTC-3

Full Stack Developer · Santos, SP, Brazil

Daniel
Simonian.

I build web products end to end — from the database schema to the last pixel — and ship them to production. Twenty years of teaching and audio engineering taught me to explain clearly and care about timing.

danielsimonian@me.com
quiet
Open to remote roles · UTC-3

Full Stack Developer · Santos, SP, Brazil

Daniel Simonian

I build web products end to end — from the database schema to the last pixel — and ship them to production. Twenty years of teaching and audio engineering taught me to explain clearly and care about timing.

danielsimonian@me.com

Project card

portfolio/project-card.tsx

Featured (large, with cover), default (card) and compact (list row). Name, type, description, stack, status and links.

featured
ranking-bt / ranking

Ranking · Feminino C

Baixada Santista 2026

LIVE
  1. 01Marina Couto1840+2
  2. 02Beatriz Lemos1765−1
  3. 03Carolina Duarte1690+1
  4. 04Fernanda Queiroz1520=
  5. 05Luíza Martins1485+3

01Own productDAMA Sports2024 → now

Ranking BT

Ranking platform for the beach tennis community: tournaments, categories, weekly standings and athlete history in one place.

In productionv2 in development — accounts, profiles and Pro plan
  • Next.js
  • TypeScript
  • Supabase
  • PostgreSQL
  • Tailwind CSS
  • Vercel
default

ClientPORTO 360 · TV Globo2025

PORTO 360 / Maxwell Rodrigues

Website for a TV presenter and his port-industry programme, with DNS on Cloudflare and deploys on Vercel.

In production
  • Next.js
  • Vercel
  • Cloudflare
  • Tailwind CSS
default · archived

Own product2025

PlayStock

Inventory management SaaS for small businesses: products, stock movements and low-stock alerts.

In development
  • Next.js
  • TypeScript
  • Supabase
  • Stripe
loading
compact

Ranking BT

2024 → now

Ranking platform for the beach tennis community: tournaments, categories, weekly standings and athlete history in one place.

In production
  • Next.js
  • TypeScript
  • Supabase

DAMA Digital

2025 → now

Website and platform for my creative agency: public pages for the Tech, Sports and Studio divisions, tournament pages, plus an admin CRM for clients and quotes and a password-gated client portal.

In production
  • Next.js
  • TypeScript
  • Supabase

Clinup

2025

Management system for clinics: online booking, patient records and follow-up in a single place owned by the clinic.

In development
  • Next.js
  • TypeScript
  • Supabase

PORTO 360 / Maxwell Rodrigues

2025

Website for a TV presenter and his port-industry programme, with DNS on Cloudflare and deploys on Vercel.

In production
  • Next.js
  • Vercel
  • Cloudflare

Project filter

portfolio/project-filter.tsx

Filter by type and technology with live counts. Pick Stripe + Client to see the empty state.

7 / 7 projects

Own productDAMA Sports2024 → now

Ranking BT

Ranking platform for the beach tennis community: tournaments, categories, weekly standings and athlete history in one place.

In production
  • Next.js
  • TypeScript
  • Supabase
  • PostgreSQL

Own productDAMA Digital Criativa2025 → now

DAMA Digital

Website and platform for my creative agency: public pages for the Tech, Sports and Studio divisions, tournament pages, plus an admin CRM for clients and quotes and a password-gated client portal.

In production
  • Next.js
  • TypeScript
  • Supabase
  • Tailwind CSS

Own product2025

Clinup

Management system for clinics: online booking, patient records and follow-up in a single place owned by the clinic.

In development
  • Next.js
  • TypeScript
  • Supabase
  • Tailwind CSS

ClientPORTO 360 · TV Globo2025

PORTO 360 / Maxwell Rodrigues

Website for a TV presenter and his port-industry programme, with DNS on Cloudflare and deploys on Vercel.

In production
  • Next.js
  • Vercel
  • Cloudflare
  • Tailwind CSS

Client2024

Escola Simonian de Música

Institutional website for a music school with 20+ years in Santos: courses, teachers and enrolment contact.

In production
  • Next.js
  • Tailwind CSS
  • Vercel

Own product2025

PlayStock

Inventory management SaaS for small businesses: products, stock movements and low-stock alerts.

In development
  • Next.js
  • TypeScript
  • Supabase
  • Stripe

Own product2024

QR Code Manager

Generator and manager for dynamic QR codes — used to track equipment for a service provider.

Archived
  • PHP
  • MySQL
  • JavaScript

Case study blocks

portfolio/case-study.tsx

Context → role → solution → architecture → stack → results → learnings. Numbered labels stick on desktop.

01Context

Results scattered across spreadsheets

Each organiser published results their own way. Athletes didn't know their real standing and sponsors had no numbers.

02My role

Product, design and end-to-end development — from the Postgres schema to deploy.

03Stack

  • Next.js
  • TypeScript
  • Supabase
  • PostgreSQL
  • Tailwind CSS
  • Vercel

04Results

Athletes

1.2k

in the ranking

Tournaments

86

recorded

LCP

<1s

mobile median

Illustrative values — Ranking BT's real metrics are still pending.

05Learnings

  1. 01Modelling categories as data, not code, saved three migrations.
  2. 02Supabase RLS made the organiser panel safe without a custom backend.
  3. 03Shipping early and listening to athletes reordered the roadmap.

Stat / metric

portfolio/stat.tsx

Athletes ranked

1.2k+18%

Baixada Santista, 2026

Tournaments recorded

86

since 2024

Teaching

24yrs

music and technology

Illustrative values until real numbers arrive.

Architecture diagram

portfolio/architecture-diagram.tsx

Boxes and arrows, left → right (stacks on mobile). The brand-topped box marks the core. Screen readers get an ordered text version.

Ranking BT — organisers publish results; the ranking is recomputed in the database and cached at the edge by Vercel.
  1. Clients: Public site (Next.js · RSC), Organiser panel (Server Actions)
  2. Edge: Vercel (ISR · cache), Cloudflare (DNS)
  3. Data: Supabase Postgres (RLS · views), Supabase Auth (v2 · accounts)

Browser & phone frame

portfolio/device-frame.tsx

Frames hold real UI (mock screens are components, not images), so they theme and translate.

ranking-bt / ranking

Ranking · Feminino C

Baixada Santista 2026

LIVE
  1. 01Marina Couto1840+2
  2. 02Beatriz Lemos1765−1
  3. 03Carolina Duarte1690+1
  4. 04Fernanda Queiroz1520=
  5. 05Luíza Martins1485+3
MC

Marina Couto

Feminino C · 12 torneios

Pontos por etapa · 2026

Code block

portfolio/code-block.tsx · sugar-high
lib/ranking.tsts
// lib/ranking.ts — points per category, ties broken by tournaments playedexport function buildRanking(results: Result[]): RankingRow[] {  const byAthlete = Map.groupBy(results, (r) => r.athleteId)  return [...byAthlete.entries()]    .map(([athleteId, rows]) => ({      athleteId,      points: rows.reduce((sum, r) => sum + r.points, 0),      tournaments: rows.length,    }))    .sort((a, b) => b.points - a.points || b.tournaments - a.tournaments)    .map((row, i) => ({ ...row, position: i + 1 }))}

Experience timeline

portfolio/experience-timeline.tsx
  1. 2022 → now

    Founder & Full Stack Developer · DAMA Digital Criativa

    Santos, Brazil · Remote

    Digital studio with three divisions (Tech, Sports, Studio). I design, build and operate web products and client systems — from discovery to production and support.

    • Next.js
    • TypeScript
    • Supabase
    • Vercel
    • Cloudflare
    • Stripe
  2. 2021 → now

    University Lecturer · ESAMC Santos

    Santos, Brazil

    Programming Logic & Data Structures, Phonographic Production, Audiovisual and Advertising. I turn class projects into real, deployed experiments.

    • JavaScript
    • Git
    • GitHub
  3. 2001 → 2025

    Teacher & Director · Escola Simonian de Música

    Santos, Brazil

    Ran a music school for over two decades: teaching, curriculum, team and operations — the school where I learned to manage people and processes.

Education / certificate card

portfolio/education-card.tsx
2025

PUCRS

Postgraduate Degree in Full Stack Development

  • Client/server architecture
  • Microservices
  • Cloud & DevOps
  • Testing
  • Security
  • UX
2024 – 2025

SENAC Santos

Technical Degree in Internet Computing

  • Front-end
  • Back-end
  • Databases
  • Mobile

Skills map

portfolio/skills-map.tsx

Grouped by area like channels on a mixer. No percentage bars.

Front-EndCH 01

  • React
  • Next.js
  • TypeScript
  • Tailwind CSS
  • Accessibility
  • Design systems

Back-EndCH 02

  • Node.js
  • Server Actions
  • REST APIs
  • PHP
  • Auth & RLS

MobileCH 03

  • React Native
  • Expo
  • PWA

DataCH 04

  • PostgreSQL
  • Supabase
  • MySQL
  • Data modelling

DevOps / CloudCH 05

  • Vercel
  • Cloudflare
  • Git & GitHub
  • CI previews
  • Stripe

MethodsCH 06

  • Scrum / Kanban
  • Discovery with clients
  • Figma prototyping
  • Technical writing

Now / About

portfolio/now-section.tsx
DS

Daniel Simonian

Santos, SP, Brazil

Before code, there was music: I ran a music school for over two decades, produced records and taught phonographic production. Today I run DAMA Digital Criativa, build my own products (Ranking BT, Clinup, PlayStock) and teach programming logic at ESAMC Santos.

Now · Sep 2026

  • Shipping Ranking BT v2 — user accounts, public profiles and a Pro plan.
  • Teaching Programming Logic & Data Structures II at ESAMC Santos.
  • Looking for a remote team building product for people.

InterestsBeach tennis · Audio engineering · Design systems · Teaching

Contact CTA

portfolio/contact.tsx

Copyable e-mail (toast), LinkedIn, GitHub and a validated form. Tick “Simulate failure” to see the error state.

09Contact

Let's build something together.

Remote roles, projects for your business, or invitations to teach and speak.

Subject

Article / note card

portfolio/article-card.tsx

Spec sheet

portfolio/spec-sheet.tsx

Teenage Engineering-style table: mono label left, value right, hairlines. For project metadata, stack and education.

project
Project
Ranking BT
Stack
Next.js · Supabase
Year
2024 → now
Role
Full Stack
Status
In production · v2 in dev
accent
PUCRS
2025
SENAC Santos
2024–25
ESAMC
2021 → now

Command copy

portfolio/command-copy.tsx

For the hero and for class material.

pnpm create next-app@latest aula-01 --ts
danielsimonian@me.com

Illustration / editorial image card

portfolio/illustration-card.tsx

A reserved slot for ONE authored illustration of Daniel's path (Santos, the sea, music, classroom, code). Shown here with an original line-art placeholder.

Santos seafront with leaning buildings, a waveform sky, a board with a music staff and code.</>SANTOS · 23°57′S 46°19′W
Santos → music → classroom → code.Placeholder · authored illustration pending

Tiguinho (pixel cat)

tiguinho/tiguinho.tsx

In memory of Tiguinho, Daniel's cat. Hidden on public pages; every minute or two he peeks, crosses, follows the cursor or naps. Hover or tap: slow blink + heart; click: name tag. Never over dialogs or while typing. Dev: ?tiguinho=peek|cross|follow|nap.

walk
sit
blink
loaf
peek
peekBlink
crouch
leap
fall
play
stretch

Grid with hairlines & construction lines

portfolio/grid-frame.tsx

01 — Stack

Next.js · Supabase · Vercel

02 — Timezone

UTC-3 · Santos, BR

<GridFrame construction />

04 / 05

Solutions components

Plain, jargon-free voice for business owners: results, not technology. Same tokens; orange can appear a little more on CTAs.

Segment / solution card

solutions/segment-card.tsx

Large and compact. As toggles they drive the system preview below — click one.

compact

System preview

solutions/system-preview.tsx

Simulated screens per segment with small, real interactions: book a slot, pay a tuition, add a dish, approve a quote.

sua-clinica.demo/agenda

Schedule · Dr. Helena Prado

General practice · October

Pick a time

Mon 06

Tue 07

Wed 08

Build your system

solutions/module-builder.tsx

Pick a segment, toggle modules. The summary names the project type. No automatic prices — it ends in “Request a proposal”, which prefills the briefing below.

01 — Segment
02 — Modules

Generic SaaS × own system

solutions/saas-comparison.tsx

Honest: it also states where SaaS wins (time to start).

Monthly cost
SaaSPer user, grows with the team
Your ownHosting + optional support plan
Customisation
SaaSWhat the vendor allows
Your ownBuilt around your process
Data ownership
SaaSStored on the vendor's account
Your ownYours, exportable any time
Integration with your site
SaaSEmbeds and external links
Your ownSame site, same login
Your brand
SaaSVendor logo and domain
Your ownYour name, your domain
Time to start
SaaSSame day
Your ownWeeks — it's built for you

Process steps

solutions/process-steps.tsx
  1. 01 / 05

    Conversation

    We map how your business works today and what hurts.

  2. 02 / 05

    Proposal

    Scope, timeline and price in writing — no surprises.

  3. 03 / 05

    Prototype

    You click through the screens before a line of code.

  4. 04 / 05

    Development

    Weekly previews you can open on your phone.

  5. 05 / 05

    Launch & support

    Training, go-live and a support plan if you want one.

Package / format card

solutions/package-card.tsx

Prices are optional (“from”). Shown with and without.

Landing page

A fast, clear site that turns visitors into contacts.

  • Copy & layout
  • Contact / WhatsApp
  • Domain & analytics
  • SEO basics

2–3 weeks

Most requested

Landing page + system

Your site plus one or two modules working together.

  • Everything in Landing page
  • 1–2 modules (e.g. booking)
  • Admin dashboard
  • Training

5–8 weeks

Full system

A system shaped around your whole operation.

from R$ —

  • Discovery workshop
  • Custom modules
  • Integrations (payments, WhatsApp)
  • Support plan

From 10 weeks

“R$ —” is a placeholder: prices haven't been defined yet.

Client case card

solutions/client-case-card.tsx

Client, segment, challenge, what was built, result. No invented testimonials.

HealthIn development

Clinup

Challenge
Small clinics book on WhatsApp, keep records on paper and track follow-ups from memory.
Built
Online booking, patient records and follow-up in one system the clinic owns, with each clinic's data isolated.
Result
In development — it's the base of the Health system shown on this page.
EducationIn production

Escola Simonian de Música

Challenge
Enrolment requests arrived by phone and got lost.
Built
An institutional site with courses, teachers and a direct contact flow.
Result
Families find the right course and reach the school in one step.
ServicesIn production

Ranking BT

Challenge
Tournament results lived in scattered spreadsheets and group chats.
Built
A public ranking with categories, tournaments and athlete history, updated by organisers.
Result
One official source the community checks every week.
ServicesArchived

QR Code Manager

Challenge
A service provider needed to know which equipment was where, and what had been done to it.
Built
Dynamic QR codes stuck on each piece of equipment, opening its record in the browser.
Result
Each piece of equipment's record is one scan away, on site.

FAQ

solutions/faq.tsx

Briefing form

solutions/briefing-form.tsx

Segment → needs → timeline → contact. Progress, per-step validation, sending / success / error, WhatsApp alternative.

01 / 04

What kind of business is it?

Prefer to talk? Message on WhatsApp

CTA band

solutions/cta-band.tsx

Always rendered on the dark palette (inverse moment) in both themes.

Next step

Shall we talk about your business?

A 30-minute, no-commitment call to see whether your own system makes sense for you.

05 / 05

Teaching & student area

Portuguese only. Cobalt marks the teaching context without breaking the identity. Built now, screens come later.

Card de disciplina

teaching/course-card.tsx
2026.2

ESAMC Santos

Lógica Computacional e Estrutura de Dados II

Desenvolvimento Full Stack

6 módulos

2026.2

ESAMC Santos

Produção Fonográfica

Produção Audiovisual

8 módulos

Card de aula / módulo

teaching/lesson-card.tsx
A.01Publicada

Fundamentos de Lógica de Programação em JavaScript

Variáveis, tipos, operadores e o primeiro programa rodando no navegador e no Node.

A.02Publicada

Estruturas condicionais e de repetição

if/else, switch, for, while — e como escolher a estrutura certa para cada problema.

A.03Em breve

Arrays, objetos e o método map

Coleções de dados na prática, com um mini-ranking de beach tennis como exemplo.

Card de trabalho de aluno

teaching/student-work-card.tsx
Destaque do professor

Lógica Computacional · 2026.1 · Turma B

Calculadora de médias com histórico

ABJP

Ana Beatriz Nogueira, João Pedro Albuquerque

  • JavaScript
  • GitHub

Estrutura de Dados · 2025.2 · Turma A

Agenda de ensaios para bandas

LFRCTM

Lucas Ferreira, Rafaela Costa, Thiago Mendes

  • React
  • Supabase

Vitrine de trabalhos

teaching/works-showcase.tsx
Disciplina
Turma
Tecnologia

3 trabalhos

Destaque do professor

Lógica Computacional · 2026.1 · Turma B

Calculadora de médias com histórico

ABJP

Ana Beatriz Nogueira, João Pedro Albuquerque

  • JavaScript
  • GitHub

Lógica Computacional · 2026.1 · Turma A

Jogo da forca acessível com teclado

ME

Maria Eduarda Santos de Oliveira

  • JavaScript

Estrutura de Dados · 2025.2 · Turma A

Agenda de ensaios para bandas

LFRCTM

Lucas Ferreira, Rafaela Costa, Thiago Mendes

  • React
  • Supabase

Perfil de aluno

teaching/student-profile.tsx
compacto
ME

Maria Eduarda Santos de Oliveira

2026.1 · Turma A

4 trabalhos
JP

João Pedro Albuquerque

2026.1 · Turma B

2 trabalhos
completo
ME

Maria Eduarda Santos de Oliveira

Desenvolvimento Full Stack · ESAMC Santos

Turma
2026.1 · Turma A
E-mail
maria.oliveira@aluno.esamc.br
GitHub
@mariaeduarda-dev
Trabalhos
4
Destaques
1

Login da área do aluno

teaching/login-box.tsx
padrão

Área do aluno

Entre para ver aulas, entregas e feedback.

Dica para o protótipo: aula2026

Esqueci minha senha
erro

Área do aluno

Entre para ver aulas, entregas e feedback.

Esqueci minha senha

Entrega de atividade

teaching/assignment.tsx

Lógica Computacional II · Módulo A

Atividade 02 — Ranking com arrays

Pendente

Crie uma função que receba uma lista de atletas com pontos e devolva o ranking ordenado, com desempate por número de torneios. Publique no GitHub e envie o link.

Prazo:

Arraste arquivos aqui ou

.zip, .pdf ou .js · até 20 MB

opcional

Feedback do professor

teaching/teacher-feedback.tsx
DS

Daniel Simonian avaliou sua entrega ·

A

Boa separação entre a função de ordenação e a de desempate. Próximo passo: trocar o for por reduce e escrever dois testes para os casos de empate.

Progresso do módulo

teaching/module-progress.tsx

Módulo A — Fundamentos de Lógica em JavaScript

4/6 aulas · 67%

  • Quiz — estruturas de repetição02 out
  • Atividade 02 — Ranking com arrays09 out

Lista de prazos

teaching/deadline-list.tsx
  1. Quiz — estruturas de repetição

    Quiz

    em 8d
  2. Atividade 02 — Ranking com arrays

    Atividade

    em 15d
  3. Entrega parcial do projeto

    Projeto

    em 29d

Card de experimento / playground

teaching/playground-card.tsx

Playground · Aula A.03

Bubble sort no ranking

passada 1
42187730651254

Estados gerais

components/states/*

Empty, loading skeleton, error, 404 and restricted access.

vazio

Nenhuma entrega ainda

Quando você enviar uma atividade, ela aparece aqui.

carregando
erro
404

ERR 404 · PAGE NOT FOUND

This track ends here.

The address may have moved or never existed. Head back and take another path.

Back to start
acesso restrito

401 · ÁREA DO ALUNO

Acesso restrito

Esta área é exclusiva para alunos matriculados. Entre com o e-mail institucional para continuar.