Why DigiCard
What makes it better
than the alternatives
- 01
Event mode with offline contact capture
Event mode with offline contact capture
- 02
AI twin per card
AI twin per card
- 03
Granular member permissions
Granular member permissions
- 04
Single codebase for public cards, staff portal and admin
Single codebase for public cards, staff portal and admin
- 05
Complete audit trail
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.
What to know before you buy
5 non-blocking findings shown publicly: 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. The seller has been notified; fixes ship in the next version.
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.