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

via Freelancer ·

Budget / Salary€250–750
TypeFreelance project
LocationRemote
Posted2 hours ago
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 against the agreed specification must be fixed before final acceptance.

DEPLOYMENT / BACKUPS
Target: DigitalOcean App Platform + PostgreSQL.

Required: environment-based configuration, dev/production separation, documented migrations, HTTPS compatibility, no critical data stored only on ephemeral filesystem, README for local/production setup and realistic documented backup/restore strategy.

OUT OF SCOPE
Do NOT implement unless separately agreed: Scheduling/appointments; workers; Quotes; Work Orders/Repairs; Catalogue; Inventory/Stock; Suppliers/Purchasing; certified invoicing/Moloni/Vendus; accounting; WhatsApp/SMS/email automation; external plate/VIN APIs; AI; native mobile apps; multi-tenant SaaS; multiple branches; complex analytics; external calendars; customer portal.

FUTURE EXTENSION
This V1 is intentionally a reusable core. Future paid projects may add Scheduling, Quotes, Work Orders, Catalogue, Stock, etc. Another developer must be able to receive this repo and add modules without rewriting the core.

OWNERSHIP / REUSE / IP - IMPORTANT
This project is commissioned as a reusable commercial foundation.

For original code/components created and delivered under this engagement, I require permanent commercial rights to run, host, copy, modify, adapt, extend, create derivative works, reuse across future commercial client projects, reuse individual modules, give other developers access, deploy separate client instances, incorporate into client software and sublicense necessary usage rights.

These rights must be perpetual, irrevocable after payment, worldwide and royalty-free.

I am NOT asking for exclusivity over legitimate pre-existing generic know-how/code.

If you use pre-existing/background components:
- Disclose them before implementation
- You may retain ownership
- I need perpetual, irrevocable, royalty-free commercial rights to use/modify/incorporate them into future client applications
- They must not create dependency on you or require repurchasing the same developer-owned licence per client
- Another developer must be legally/technically able to maintain the applications

Third-party/open-source licences must be disclosed and commercially compatible. Client data, branding and confidential client-specific information may never be reused.

If you are not comfortable with these reuse rights, do not bid.

HANDOVER
Final handover includes:
- Complete source in my repository + Git history
- DB schema + EF migrations
- Automated tests + working application
- Demo seed
- README/local setup
- Environment/config + DB/migration instructions
- Deployment instructions
- Backup/restore instructions
- Dependency/licence list
- QA summary + known limitations

BID REQUIREMENTS
I want a FIXED PRICE for the COMPLETE scope. Do not bid artificially low and later claim authentication, exports, tests, responsive UI, history or documentation were excluded. Do NOT begin development before being selected.

Your bid must include:
1. Fixed price for complete scope
2. Delivery time
3. Confirmation you read the full specification
4. Proposed architecture/project structure
5. Testing/QA approach
6. How you will test relational/data-integrity rules
7. Anything you would simplify/challenge and why
8. Any paid library/service
9. Proposed post-delivery defect-fix period
10. Explicit confirmation of ownership/reuse terms
11. Relevant ASP.NET Core work/repos
12. Any assumption affecting price

Cheapest does not automatically win. I will compare technical understanding, experience, judgement, QA, maintainability, communication, delivery time, fixed price, reviews/history and lack of vendor lock-in.

SUCCESS
The result must be a polished REUSABLE CORE V1 good enough to demonstrate to a business owner as professional software and good enough that another developer can later preserve the existing core and add new modules without rebuilding it.

That is the purpose of this project.
javascript c# programming postgresql software development git web development documentation .net core database management api development
Apply on Freelancer →

Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.