arrow_back Voltar pras freelances
F

Reusable ASP.NET Core SME Foundation — Users + Clients + Vehicles

Freelancer

Compartilhar:
placePT home_workRemoto assignmentContrato publicVaga agregada · PT

eventPublicada em 13 de set. de 2026 · verifiedVerificamos em 14 de set. de 2026 que ainda está no ar

Essa empresa é sua?

€ 250 – € 750 por projeto

Sobre a vaga

I am looking for an experienced C# / ASP.NET Core developer to build a production-quality REUSABLE CORE V1 that will become the starting point for multiple future SME client applications. This is NOT a prototype or generic CRM template. I handle client discovery, business analysis and requirements. Your role is to implement a clear specification, test it properly and deliver maintainable code another competent ASP.NET developer can continue later. V1 SCOPE - Authentication / users / simple permissions - Clients - Vehicles - Search, filters, sorting, pagination - Exports and basic history - Polished responsive business UI - Strong reusable technical foundation Future modules such as Scheduling, Quotes, Work Orders, Catalogue and Stock are OUT OF SCOPE. All visible UI text must be European Portuguese (pt-PT). TECH STACK / PRINCIPLES Preferred: C#, ASP.NET Core, Razor Pages, EF Core, PostgreSQL, EF migrations, HTML/CSS and lightweight JS where useful. HTMX is acceptable if justified. Must be suitable for DigitalOcean App Platform. Keep architecture proportional. No microservices, CQRS, MediatR or unnecessary abstraction unless clearly justified. REPOSITORY / CONTROL The repository must remain under my control, preferably in my GitHub organization. Required: - Complete source available throughout development - Development in my repo or equivalent continuous access - Git history + migrations committed - No important source hidden in binaries/private services - No developer-owned backend dependency - No secrets in Git - Environment-based configuration - No paid dependency without prior approval - Another ASP.NET developer must be able to clone, set up and continue the project No ZIP-only handover or vendor lock-in. AUTHENTICATION / USERS Use a secure standard ASP.NET solution, preferably ASP.NET Core Identity. Required: - Login/logout - Framework password hashing; no custom encryption - Protected pages + server-side authorization - Create/edit/activate/deactivate users - Password change/reset - Clear validation/errors - Deactivated users lose protected access Roles: ADMIN: full access + user administration OPERATOR: normal operational access Keep permissions simple but easy to extend later to module/page permissions. CLIENTS Fields: Name, Phone/contact, Email, NIF, Address, Notes, Created/Updated timestamps, Active/Archived state. Required: create/view/edit, archive/reactivate, no normal hard-delete of important history, fast partial search, filters/sorting/pagination, client detail with associated vehicles, server validation, friendly errors/empty states and export. VEHICLES One client may have multiple vehicles. Fields: Registration plate, VIN/chassis number, Make, Model, Notes, Current owner/client, Created/Updated timestamps, Active/Archived state. Required: create/view/edit, archive/reactivate, link to client, search by plate/VIN/client, filters/sorting/pagination, vehicle detail, export and ownership/history information. Portuguese plate normalization is important. AA-00-AA, AA00AA and aa 00 aa must compare/search consistently; formatting differences must not create duplicates. VIN needs sensible normalization/validation and duplicate protection where appropriate. OWNERSHIP / HISTORY Vehicles may change owner. Transfer the existing vehicle to the new client while preserving previous ownership/history. Do NOT destroy previous history, duplicate the vehicle because ownership changed, or silently overwrite the old relationship. At minimum preserve current owner, previous owner, ownership change date, created/updated timestamps and archive/reactivate state. SEARCH / FILTERS / EXPORTS Provide module-specific and global search. Clients: name, contact, email, NIF where appropriate. Vehicles: plate, VIN, make/model, client. Global search: at minimum client name, contact, plate and VIN. Global results must identify record type and open the correct record quickly. Normalize plate, phone, whitespace/case where useful. Lists need relevant filters, sorting, pagination and Active/Archived filtering. Exports: - Client list - Vehicle list - CSV and/or XLSX, preferably XLSX if commercially licensed - Respect active filters where practical - Clean printable/PDF client and vehicle summaries where useful Any Excel/PDF library must be commercially compatible and disclosed. UI / UX Dashboard: active client/vehicle counts, quick search, New Client and New Vehicle. Priorities: - Search first - Few unnecessary clicks - Avoid retyping stored data - Compact forms/tables - Clear feedback/validation/error states - Confirm genuinely destructive actions - Preserve context where possible Avoid giant cards, huge headings and excessive whitespace. Target: - Desktop-first - Excellent at 1366x768 and 1920x1080 - Responsive tablet support - Mobile usable for basic lookup/editing where reasonable DATA INTEGRITY Use server-side validation, DB constraints/unique indexes, foreign keys, transactions where needed, referential integrity, safe race/concurrency handling and no dangerous cascade deletion of important history. Client-side validation cannot be the only protection. Ownership transfer must not leave partial state after failure. DEMO DATA Provide optional fictional Portuguese-style seed data with 20+ clients, vehicles, archived and ownership-history examples. TESTING / QA Automated tests are expected for: - Authentication/authorization and deactivated users - Client create/edit/archive/reactivate - Vehicle create/edit/archive/reactivate - Client-vehicle relationships - Normalized plate search/duplicate protection - VIN behaviour where relevant - Ownership transfer preserving history - Important validation/DB constraints Do not rely exclusively on EF Core InMemory for relational/persistence behaviour. Before delivery perform a manual pass covering login, users, client/vehicle CRUD, search, archive/reactivate, ownership transfer, filters/exports, permissions and responsive behaviour. I will perform acceptance QA. Bugs again

Continue lendo de graça

Crie uma conta grátis pra ver a vaga completa e se candidatar.

  • badgePortfólio visível pras empresas
  • notificationsAlerta de vaga nova por e-mail
  • favoriteSempre grátis, sem pegadinha