Alex TarverdyDATA ENGINEERING
Full-stack Scala application · Public repository

Scala Material Notes

A note-taking application joining a Scala backend and relational data model to a React interface.

The problem

Notes, categories and tags require an interface and a consistent persistence model. This project demonstrates the boundary from browser interactions through API routes to relational updates.

Conceptual component flow for Scala Material Notes

Conceptual summary of the components visible in the source; not a deployment diagram.

What is inside the repository

A Scala/Play backend

Controllers expose notes, categories, tags and health routes. Repository classes use Slick against an embedded/file-backed H2 database initialized with Flyway migrations.

Relational modeling

Notes are linked to categories and tags through join tables. Create/update repository operations group the note changes and relationship updates in transactions.

A React editing workflow

The TypeScript/MUI frontend includes editing dialogs, category/tag management and list filters. Backend search in the inspected NotesRepository currently matches the title.

Development and packaging instructions

The README describes separate backend/frontend development and a single-server build that copies the frontend output into Play public assets.

What this project demonstrates

End-to-end ownership

Working across database schema, repositories, HTTP controllers and frontend integration.

Relational integrity

Using normalized associations and transactional writes for related records.

Broader Scala capability

A concrete example beyond batch processing, useful for internal data tools and platform interfaces.

These are observations about the code and its relevance to engineering work, not claims of production deployment, measured business impact or exclusive authorship.

Inspect the implementation

These links point to the reviewed commit, so the description can be checked against a stable source snapshot.

Verification and reproducibility

Backend schema, repository/controller code and frontend source were inspected. The app was not built or browser-tested in this review, and no dedicated automated test files were found in the inspected tree.

Repository command to start with

cd backend && sbt run
# In a second terminal:
cd frontend && npm install && npm run dev

Use the repository README for prerequisites and setup. A listed command is not a promise that an unprepared environment will pass its tests.

Limitations and useful next steps

  • CRUD and UI source do not establish production security, multi-user authorization or reliability under concurrency.
  • The repository list operation currently returns all matching notes without pagination.
  • The frontend suggests title/content search, while the inspected backend query searches titles; that behavior needs alignment.

What would strengthen the evidence

  • Add repository and API integration tests plus a browser CRUD smoke test.
  • Add pagination, align search behavior and document the intended authentication/deployment model.
Let’s work together

Have a data challenge
or a role in mind?

Let’s discuss the problem, the team and where I could contribute.

Start a conversation

What are you working on?

Tell me about your team, a role or a data challenge.

20–3,000 characters. Please leave out sensitive data and credentials.

Your message and reply address are sent to Alex by email. Cloudflare checks for spam; Resend delivers the email. Privacy details.