LinkUp is a real-time messaging web application with:
- FastAPI backend (
server) - React + Vite frontend (
client) - Redis for pub/sub + presence
- SQL database via SQLAlchemy
Install these first:
- Node.js 18+ (20+ recommended)
- Python 3.10+
- Redis (running locally)
- A SQL database (PostgreSQL recommended, SQLite also works for local testing)
git clone <your-repo-url>
cd LinkUpFrom the project root:
cd server
python -m venv .venvActivate the virtual environment:
- Windows (PowerShell)
.\.venv\Scripts\Activate.ps1
- macOS/Linux
source .venv/bin/activate
Install dependencies:
pip install -r requirements.txtCreate a .env file inside server/ with:
DATABASE_URL=postgresql://USER:PASSWORD@localhost:5432/linkup
REDIS_URL=redis://localhost:6379/0
SECRET_KEY=replace-with-a-long-random-secret
ALGORITHM=HS256Notes:
- For SQLite (quick local setup), you can use:
DATABASE_URL=sqlite:///./linkup.db SECRET_KEYshould be a long random string in real deployments.
Run backend API:
uvicorn main:app --reload --host 127.0.0.1 --port 8000Backend should now be available at http://127.0.0.1:8000.
Open a second terminal from project root:
cd client
npm install
npm run devFrontend should now be available at http://localhost:5173.
Keep both services running:
- Backend:
http://127.0.0.1:8000 - Frontend:
http://localhost:5173
Open the frontend URL, register a user, and start chatting.
- Frontend lint:
cd client && npm run lint
- Stop backend/frontend:
- Use
Ctrl + Cin each terminal.
- Use