Skip to content

Saatvik-GT/Synapse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SYNAPSE

Discover open source projects to contribute to. Search research papers across every field.

A retro terminal-aesthetic platform built for students at Chandigarh University — and anyone who wants to find meaningful open source contributions or explore academic research.


What it does

Explore OSS — Search GitHub repositories filtered by language, topic, competition level, and activity. Each repo gets an opportunity score calculated from open issues, update recency, fork ratio, and star count. Results shown in a ranger-style dual-pane interface with ASCII stat bars and keyboard navigation.

Research Papers — Search across four free academic APIs simultaneously: CrossRef, Semantic Scholar, arXiv, and OpenAlex. No API keys required. Any topic, any field.


Stack

Layer Tech
Frontend Next.js 14 · TypeScript · Tailwind CSS · Framer Motion
Backend Node.js · Express
Database Supabase (PostgreSQL)
APIs GitHub Search API · OpenAlex · Semantic Scholar · arXiv · CrossRef
Font DM Mono (monospace throughout)

Design

Retro Terminal (Amber) — CRT monitor aesthetic with phosphor glow, scan lines, and sharp amber-on-black typography. No rounded corners. Monospace everything.

Key UI elements:

  • Canvas-based rotating ASCII pyramid on the home page
  • Interactive 3D synapse node network (mouse-repulsion spring physics)
  • Ranger-style dual-pane explorer for repos
  • Boot sequence terminal animation on landing

Project Structure

synapse/
├── client/          # Next.js frontend
│   ├── src/
│   │   ├── app/
│   │   │   ├── page.tsx          # Home — boot sequence + pyramid
│   │   │   ├── explore/          # OSS explorer (dual-pane)
│   │   │   └── research/         # Research paper search
│   │   ├── components/
│   │   │   ├── ui/
│   │   │   │   ├── AsciiPyramid.tsx   # Rotating 3D ASCII pyramid
│   │   │   │   ├── SynapseNodes.tsx   # Interactive node network
│   │   │   │   ├── Logo.tsx
│   │   │   │   └── Navbar.tsx
│   │   │   └── research/
│   │   │       └── PaperCard.tsx
│   │   └── lib/
│   │       └── api.ts            # Axios client with Supabase JWT
│   └── tailwind.config.js        # Amber/CRT color tokens
│
├── server/          # Express backend
│   └── src/
│       ├── index.js              # Entry point, rate limiting
│       ├── routes/
│       │   ├── explore.js        # GET /api/explore
│       │   └── research.js       # GET /api/research
│       └── services/
│           ├── githubSearch.js   # GitHub Search API + opportunity score
│           ├── openAlex.js
│           ├── semanticScholar.js
│           ├── arxiv.js
│           └── crossref.js
│
├── supabase/
│   └── schema.sql               # PostgreSQL schema + RLS policies
│
└── .env                         # Not committed — see setup below

Getting Started

Prerequisites

  • Node.js 18+
  • A Supabase project (free tier works)
  • No other API keys needed — all external APIs are free and keyless

1. Clone

git clone https://github.com/SynapseNode0/Synapse.git
cd Synapse

2. Environment variables

Create a .env file in the root:

SUPABASE_URL=your_supabase_project_url
SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_KEY=your_supabase_service_role_key
GITHUB_TOKEN=optional_but_recommended
PORT=5000

Copy the same file into client/ as .env.local:

NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_API_URL=http://localhost:5000

3. Database

Run supabase/schema.sql in your Supabase SQL editor to create the tables and RLS policies.

4. Start the backend

cd server
npm install
npm run dev        # runs on http://localhost:5000

5. Start the frontend

Open a second terminal:

cd client
npm install
npm run dev        # runs on http://localhost:3000

Opportunity Score

Each GitHub repo gets a score (0–100) calculated server-side from the single search API response — no extra requests made:

Signal Weight
Open issues (capped at 100) 30 pts
Days since last update up to 25 pts
Fork/star ratio up to 15 pts
Star count sweet spot (100–5k) up to 15 pts
Topics count (>3) 10 pts
Has homepage 5 pts

Contributing

Issues and PRs welcome. The codebase is intentionally kept simple — no ORMs, no state management libraries, no component libraries.


License

MIT

About

a connection between minds.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors