A fullstack task management application built with React (Vite) on the frontend and Express (TypeScript) on the backend.
It supports full CRUD operations, user authentication, filtering, pagination, and is fully documented with Swagger and tested with Vitest and Jest.
- React (Vite) + TypeScript
- CSS Modules for scoped styling
- React Testing Library + Vitest for unit tests
- Accessible and semantic HTML practices
- Express.js (TypeScript)
- Prisma ORM with PostgreSQL
- JWT Authentication
- Swagger for REST API documentation
- Helmet + CORS + Rate Limiting for security
- Jest for backend unit and integration tests
- Create, read, update, and delete tasks
- Toggle task completion
- Filter tasks by search or completion status
- Paginate through task list
- User registration and login
- JWT-based protected routes
- Logout on 401/403 from any endpoint
- Backend:
services
androutes
tested using Jest - Frontend: Components tested with React Testing Library and Vitest
- Available at:
/api-docs
- Powered by Swagger UI and OpenAPI schema
git clone git@github.com:higorasilverio/curotec.git
cd curotec
cd backend
npm install
npx prisma migrate dev --name init
npm start
Environment Variables (backend):
DATABASE_URL=
JWT_SECRET=
PORT=
RATE_LIMIT_TIME=
RATE_LIMIT_REQUESTS=
ENABLE_TRANSPORT_SECURITY=
WEB_APPLICATION_DOMAIN_URL=
cd ../frontend
npm install
npm start
Environment Variables (frontend):
VITE_API_TASK_URL=
VITE_API_AUTH_URL=
cd backend
npm test
cd frontend
npm test
/backend
├── prisma/
├───── migrations/
├── src/
├──── __mocks__/
├──── controllers/
├──── services/
├──── routes/
├──── middlewares/
├──── config/ (Swagger & rate limiter)
├──── lib/ (Prisma client)
/frontend
├── src/
├──── components/
├────── __tests__/
├──── hooks/
├──── styles/
├──── types/
├──── test/
├──── lib/
- Helmet: Sets secure HTTP headers
- Rate Limiter: Prevents API abuse
- CORS: Configured for frontend domain
- JWT: Access control and session management
- Error Handling: Centralized and user-friendly
- Use Amazon Aurora Serverless v2 or PostgreSQL in production
- Setup HTTPS and secure cookie handling
- Leverage CI/CD pipelines for test coverage enforcement
Built as part of a technical assessment, with a focus on:
- Code clarity and maintainability
- Testing discipline
- Security best practices
- RESTful design and OpenAPI documentation
MIT License.