About this software
About DigiCard
A single-tenant ASP.NET Core 9 MVC application serving public digital business cards, a staff portal (installable PWA) and an admin panel. Each team member gets a card at /their-name with one-tap vCard download, QR codes tracked by source, and an AI assistant trained on company knowledge that streams answers over SignalR. Staff sign in to the same site to capture contacts at events (offline-capable), follow up leads through a CRM pipeline, and review analytics. Administrators manage the team, configure AI guardrails, set member permissions and export every contact the team has captured.
Why DigiCard
What makes it better
than the alternatives
- 01
Event mode with offline contact capture
- 02
AI twin per card
- 03
Granular member permissions
- 04
Single codebase for public cards
Staff portal and admin
- 05
Complete audit trail
Public Digital Cards
- Card page per team member at /{slug} with photo
- role
- contact buttons
- company profile
- services and portfolio
- One-tap vCard download (Save to contacts)
- Multiple QR codes per person with custom labels (event stand
- email signature) tracked separately
- Share-your-details-back form that creates a lead for the card owner
- Inactive cards redirect to replacement team member
AI Twin Chat
- Real-time streaming replies over SignalR from Claude Sonnet 4
- Answers drawn only from company profile
- services
- portfolio and knowledge base
- Per-person tone and instructions; company-wide persona
- scope rules and guardrails
- Rate limits: per-visitor pacing
- hourly and per-conversation caps
- daily request and USD spend limits
- Prompt caching for fast
- cheap replies; unanswered questions collected as knowledge gaps
- Intent scoring on conversations (0-100) for lead prioritisation
Lead Management
- Unified contact list from card forms
- chat and events
- Status pipeline: New
- Contacted
- Qualified
- Closed
- Importance rating (Low
- Medium
- High
- Critical) and follow-up dates
- Archive instead of delete; full audit trail per contact
- Export to Excel and CSV with filters (employee
- source
- status
- date range
- search)
- Email and push notifications for new contacts (configurable per member)
Event Contact Capture
- Create event
- add contacts during
- close and debrief afterwards
- Scan business cards with Claude OCR (photo → structured contact)
- Attach multiple photos per contact (badge
- notes
- product interest)
- Offline-capable: queued writes sync when connection returns (idempotent by client key)
- Edit contacts after the event; export event attendees to Excel/CSV
- Event analytics: contacts captured
- photos taken
- time spent
Team & Card Administration
- Add/edit team members: name
- slug
- designation
- department
- contact details
- bio
- photo
- video
- Link each card to a sign-in account (role: Admin or TeamMember)
- Set replacement for inactive members (their card redirects)
- Generate and manage QR codes per person with custom labels
- Send welcome email with one-time sign-in link (3-day expiry)
- Member activity page: scans
- chats
- contacts
- QR codes
- personal AI knowledge
AI Knowledge Base
- Company-wide knowledge: about us
- services
- portfolio
- FAQs
- Per-person knowledge: achievements
- specialisms
- personal tone
- Rich text editor for each entry; active/inactive toggle
- Knowledge gaps report: questions the AI couldn't answer
- sorted by frequency
- Test bench: try questions against live knowledge without touching a real card
- Invalidates cache on every save; changes live immediately
Permissions & Policies
- Granular control: which card fields team members may edit themselves (name
- designation
- phone
- bio
- photo
- video
- slug
- chat toggle
- AI tone
- AI knowledge)
- Password policy: minimum length
- complexity rules
- lockout after failed attempts
- Session versioning: password change or admin reset signs out all devices
- Resource-based authorisation: members see only their own contacts and events
- Super admin role for managing accounts (separate from ordinary admin)
Analytics & Reporting
- Platform-wide: scans by day
- by employee
- by QR code
- by device; chat volume; average reply latency
- Configurable date range (7-365 days
- default 30)
- Per-member activity: scans
- chats
- contacts
- QR codes
- personal knowledge
- Export all contacts to Excel/CSV with filters (employee
- source
- status
- date range
- search)
- Export recent contacts (default 90 days) from analytics page
- Row limits: 10
- 000 for admin exports
- 5
- 000 for member exports
Email & Push Notifications
- SMTP configuration page with test-send function
- Welcome emails with one-time sign-in link (3-day expiry)
- Password reset emails (60-minute expiry)
- New contact alerts to card owner (configurable per member)
- Web push notifications (VAPID keys
- subscription management)
- Identifies members with no email address or notifications disabled
Company Profile & Content
- Company profile: name
- tagline
- about
- trade licence
- ISO certification
- website
- phone
- address
- verified badge
- Upload company logo and brochure PDF
- Services: title
- short description
- detail
- icon
- PDF attachment
- sort order
- active/inactive
- Portfolio items: title
- client
- summary
- URL
- image
- sort order
- active/inactive
- All content feeds the AI knowledge base and appears on every card
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| C# | — | — | Web, API, admin | 39.7% |
| C# (Razor) | — | — | Web pages | 25.4% |
| CSS | — | — | Styling | 23.6% |
| JavaScript | — | — | Front-end | 5.7% |
| SQL | — | — | Database | 3.4% |
| HTML | — | — | Front-end | 2.1% |
- Primary language
- C# 12 / .NET 9.0
- Framework
- ASP.NET Core 9 MVC
- Database
- SQL Server 2019+
- Authentication
- Cookie authentication (email + password, no ASP.NET Core Identity)
- Licence
- Single-site
- Screens
- 47
- Database tables
- 20
- Supported languages
- English only
- Browser support
- Modern browsers (ES6+, WebSockets for chat)
| Minimum | Recommended | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB RAM / 20 GB storage | 8 GB RAM / 40 GB storage |
| OS | Linux or Windows Server, .NET 9.0 SDK/Runtime, SQL Server 2019+ | Linux or Windows Server, .NET 9.0 SDK/Runtime, SQL Server 2019+ |
| Est. monthly hosting | $35 | $35 |
```bash cp .env.example .env # Edit .env: set MSSQL_SA_PASSWORD, IP_HASH_SALT, PUBLIC_BASE_URL docker compose up -d # First admin password in logs: docker compose logs web ```
```bash # Install .NET 9 SDK wget https://dot.net/v1/dotnet-install.sh chmod +x dotnet-install.sh ./dotnet-install.sh --channel 9.0 # Install SQL Server curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)" sudo apt-get update sudo apt-get install -y mssql-server sudo /opt/mssql/bin/mssql-conf setup # Create database sqlcmd -S localhost -U sa -P '<YOUR_SA_PASSWORD>' -C -i database/schema.sql sqlcmd -S localhost -U sa -P '<YOUR_SA_PASSWORD>' -C -d DigiCard -i database/seed.sql # Configure app cd "NET Project/src/DigiCard.Web" cp appsettings.example.json appsettings.Production.json # Edit appsettings.Production.json and set environment variables # Build and run dotnet publish -c Release -o /var/www/digicard sudo systemctl enable /var/www/digicard/DigiCard.Web sudo systemctl start digicard # Nginx reverse proxy (enable WebSockets) sudo apt install nginx # Configure /etc/nginx/sites-available/digicard with proxy_pass and upgrade headers sudo systemctl reload nginx ```
```bash az login az group create --name digicard-rg --location eastus az sql server create --name digicard-sql --resource-group digicard-rg --admin-user sqladmin --admin-password '<STRONG_PASSWORD>' az sql db create --resource-group digicard-rg --server digicard-sql --name DigiCard --service-objective S0 az webapp create --resource-group digicard-rg --plan digicard-plan --name digicard-app --runtime "DOTNET:9.0" # Set connection string and app settings in Azure Portal # Deploy: dotnet publish -c Release && az webapp deploy ```
```bash # Start SQL Server in Docker docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=DevPass123!' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2022-latest # Wait 30s for SQL to start, then create database sleep 30 sqlcmd -S localhost -U sa -P 'DevPass123!' -C -i database/schema.sql sqlcmd -S localhost -U sa -P 'DevPass123!' -C -d DigiCard -i database/seed.sql # Set user secrets cd "NET Project/src/DigiCard.Web" dotnet user-secrets set "ConnectionStrings:Default" "Server=localhost;Database=DigiCard;User Id=sa;Password=DevPass123!;TrustServerCertificate=True" dotnet user-secrets set "App:IpHashSalt" "$(openssl rand -base64 32)" dotnet user-secrets set "Claude:ApiKey" "<YOUR_CLAUDE_KEY>" # Run dotnet run # Open https://localhost:59473 # Demo login: admin@digicard.app / DigiCard@2026 ```
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
Reviewer notes (5 minor)
Dependencies pinned and current; no known critical vulnerabilities found; database access is safe; schema has minor indexing gaps and one missing fk; moderate code duplication and some oversized service files; generally sound module boundaries; no real secrets found; weak default password in test code and example files need review; strong authentication and authorization; minor ownership gaps on read-only contact endpoints. None of these stop the software from working; the developer has been told and improvements come in a future update.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.