Skip to content

the-monkeys/capuchin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Capuchin: A basic Todo app

A basic full-stack todo list application with a Go (Golang) REST API backend and a React frontend with a professional-grade storage architecture.

πŸš€ Features Implemented

Backend (Go + Gin): RESTful API with CRUD operations. Frontend (React + Vite): Modern reactive UI with Hooks (useState, useEffect). Styling (Tailwind CSS): Dark-mode interface with optimistic UI. Persistence: File-based JSON storage. Architecture: Refactored into "Standard Go Layout" (cmd, internal).

πŸ“‚ Final Project Structure

β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ cmd/server/main.go       # Entry point
β”‚   β”œβ”€β”€ internal/models/todo.go  # Data structures
β”‚   β”œβ”€β”€ internal/store/file.go   # File I/O logic
β”‚   β”œβ”€β”€ db/db.json               # Database
β”‚   β”œβ”€β”€ go.mod                   # Dependencies
β”‚   └── go.sum
└── frontend/
    β”œβ”€β”€ src/App.tsx              # React UI & Logic
    β”œβ”€β”€ src/index.css            # Tailwind Imports
    β”œβ”€β”€ vite.config.ts           # Build Config
    └── package.json

Tech stack

  • Backend: Go (REST API).
  • Backend Framework: Gin
  • Frontend: React, TypeScript
  • Database: File System storage

πŸ› οΈ How to Run

Backend:

Open Terminal 1

cd backend
go run cmd/server/main.go

Server runs on localhost:8080

Frontend:

Open Terminal 2

cd frontend
npm run dev

Browser opens at localhost:5173

🧠 Key Concepts Implemented (can be seen in comments)

  • Go: Structs, Slices, JSON Marshalling, Modules, Package Exporting.
  • React: Functional Components, Hooks, API Integration (fetch, async/await), Controlled Inputs.
  • General: REST API Design, CORS, JSON Persistence, Refactoring,TypeScript(for styling), axios (for API calls)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published