From c50005550c0ab549a623179b5b2dc9bd2f5e5f0f Mon Sep 17 00:00:00 2001
From: KGFCH2
+
One Tap. Every Profile. Every Platform. Open Source Developer Profile Exchange Platform
-
- The open-source developer profile exchange platform that simplifies networking at hackathons, conferences, and meetups.
+
+
+
DevCard
-
-
- Features • - Quick Start • - Architecture • - Contributing • - License + Features • + Tech Stack • + Getting Started • + Project Structure • + Contributing • + License
--- -## The Problem - -At every developer meetup, hackathon, or conference, the same friction plays out: +## 💡 The Problem -> *"What's your LinkedIn?"* → open LinkedIn, search, send request -> *"Do you have GitHub?"* → open GitHub, search, follow -> *"Are you on Twitter?"* → open Twitter, search, follow +Networking as a developer often involves a fragmented exchange of handles: +> *"What's your LinkedIn? Do you have GitHub? Are you on X/Twitter?"* -Each exchange is manual, error-prone, and slow. DevCard fixes this. +Each exchange requires manual searching, multiple app switches, and unnecessary friction. **DevCard** solves this by aggregating all your professional profiles into a single, scan-and-connect experience. -## The Solution +## 🚀 Features -**DevCard** aggregates all your developer profiles into a single shareable QR code. The receiver opens one screen and can follow/connect on every platform — without switching apps. +- 🔗 **Profile Aggregation** — Support for GitHub, LinkedIn, X/Twitter, Devfolio, GitLab, LeetCode, and 10+ more. +- 📱 **QR & AirDrop Sharing** — Share your entire digital presence with one scan or link. +- ⚡ **Hybrid Follow Engine** — Background follows for GitHub (API) and seamless WebView connections for others. +- 🎯 **Context Cards** — Tailor your shared profiles for specific events (e.g., "Professional" vs. "Hackathon" cards). +- 🔒 **Privacy-First** — No data monetization. Apache 2.0 licensed. You own your profile. +- 🌐 **Web Backup** — Recipients can view and connect even if they don't have the DevCard app. -## Features +## 🛠 Tech Stack -- 🔗 **Universal Profile Aggregation** — GitHub, LinkedIn, Twitter/X, GitLab, Devfolio, and 10+ more platforms -- 📱 **QR Code Sharing** — Show your QR, they scan, done -- ⚡ **One-Screen Multi-Platform Connect** — Follow on GitHub, Connect on LinkedIn, all from one card -- 📈 **Advanced Analytics** — Track who viewed your card, when, and from where (Web, QR, App) -- 🔌 **Per-Platform OAuth Integrations** — Securely connect accounts for "Silent Follows" -- 🎯 **Context Cards** — Different cards for different situations (Professional, Hackathon, Community) -- 🌐 **Web Backup** — Receivers don't need the app — works in any browser -- 🔒 **Privacy-First** — No tracking, no data selling, your data stays yours -- 🛠️ **Open Source** — Apache 2.0 licensed, community-governed +| Component | Technology | +| :--- | :--- | +| **Frontend (Web)** | SvelteKit, Vite, Lucide Icons | +| **Mobile App** | React Native (Bare Workflow), React Navigation | +| **Backend API** | Fastify, TypeScript, Prisma ORM | +| **Database** | PostgreSQL 16, Redis 7 (Caching) | +| **Package Manager** | pnpm (Workspaces) | -## Quick Start +## 🏁 Getting Started ### Prerequisites -- Node.js >= 20 -- pnpm >= 9 -- Docker & Docker Compose -- React Native development environment ([setup guide](https://reactnative.dev/docs/environment-setup)) - -### Development Setup - -```bash -# Clone the repo -git clone https://github.com/Dev-Card/DevCard.git -cd devcard - -# Install dependencies -pnpm install - -# Start infrastructure (PostgreSQL + Redis) -docker compose up -d - -# Copy environment config -cp .env.example .env - -# Run database migrations -pnpm db:migrate - -# Seed sample data -pnpm db:seed - -# Start the backend -pnpm dev:backend - -# In another terminal — start the mobile app -pnpm dev:mobile -``` - -## Architecture - -``` -devcard/ +- **Node.js**: `v20.x` or higher +- **pnpm**: `v9.x` or higher +- **Docker**: For running PostgreSQL and Redis +- **React Native environment**: [Official Guide](https://reactnative.dev/docs/environment-setup) + +### Local Development + +1. **Clone the repository** + ```bash + git clone https://github.com/Dev-Card/DevCard.git + cd DevCard + ``` + +2. **Install dependencies** + ```bash + pnpm install + ``` + +3. **Spin up infrastructure** + ```bash + docker compose up -d + ``` + +4. **Environment Configuration** + ```bash + cp .env.example .env + # Update .env with your local database and provider secrets + ``` + +5. **Initialize Database** + ```bash + pnpm db:migrate + pnpm db:seed + ``` + +6. **Start Development Servers** + ```bash + # Run the entire stack + pnpm dev:web # Web Dashboard + pnpm dev:backend # API Server + pnpm dev:mobile # Mobile App (Expo/Metro) + ``` + +## 📂 Project Structure + +```text +DevCard/ ├── apps/ -│ ├── backend/ # Fastify + TypeScript API -│ ├── mobile/ # React Native (Bare) mobile app -│ └── web/ # SvelteKit web backup +│ ├── backend/ # Fastify + Prisma API +│ ├── mobile/ # React Native Mobile Application +│ └── web/ # SvelteKit Dashboard & Profile Views ├── packages/ -│ └── shared/ # Shared types, platform registry, utils -├── docker-compose.yml # PostgreSQL + Redis -└── pnpm-workspace.yaml # Monorepo config +│ └── shared/ # Shared types, constants, and utilities +├── docker-compose.yml +└── pnpm-workspace.yaml ``` -### Tech Stack - -| Layer | Technology | -|-------|-----------| -| Mobile App | React Native (Bare) + React Navigation | -| Backend API | Fastify + TypeScript | -| Database | PostgreSQL 16 + Prisma ORM | -| Cache | Redis 7 | -| Web Backup | SvelteKit | -| Auth | OAuth 2.0 (GitHub, Google) | - -### Hybrid Follow Engine - -DevCard uses a three-layer follow engine: - -| Layer | Strategy | Platforms | -|-------|----------|-----------| -| API Follow | Silent background follow | GitHub | -| WebView Connect | In-app WebView interaction | LinkedIn, Twitter/X | -| Profile Link | Opens profile in browser | GitLab, Devfolio, others | - -## API Endpoints - -The API provides the following endpoints (defined by the `cardRoutes` function in `apps/backend/src/routes/cards.ts`): - -| Method | Endpoint | Description | -|--------|----------|-------------| -| **GET** | `/` | List all cards for the authenticated user | -| **POST** | `/` | Create a new card (first card is auto-set as default) | -| **PUT** | `/:id` | Update a card's title and/or links | -| **DELETE** | `/:id` | Delete a card | -| **PUT** | `/:id/default` | Set a card as the default card | - -### **POST /** - Create a New Card (Example) - -**Request:** -```json -POST /cards HTTP/1.1 -Authorization: Bearer- Built with ❤️ by the developer community, for the developer community. + Built with ⚡ by the DevCard Community.