Skip to content

Commit ebd2644

Browse files
authored
Merge pull request #109 from smswithoutborders/dev
update Landing, About, Projects, Partner, Footer UI and add Research section
2 parents f12a03b + 39854cb commit ebd2644

12 files changed

Lines changed: 2918 additions & 1055 deletions

File tree

README.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,86 @@ In addition to React, we utilized the following packages to enhance functionalit
4949
- React Icons
5050

5151
Feel free to explore and contribute to make SMS Without Borders even better!
52+
53+
54+
55+
---------------------------------------------------------------------------------------------------------------------------------------------
56+
57+
# Research & Publications Section – Integration Guide
58+
59+
## Overview
60+
61+
This adds a fully-featured **Research & Publications** page to the SMSWithoutBorders website that:
62+
63+
- Displays all papers, white papers, and threads in a searchable, filterable grid
64+
- Lets non-developers **add new papers by only editing one JSON file** — no React code needed
65+
- Supports search by title, topic, author, or keyword
66+
- Supports filtering by type (whitepaper / research / thread), year, and topic tags
67+
- Links directly to PDFs (Google Drive, arXiv, etc.)
68+
69+
---
70+
71+
## Files Delivered
72+
73+
```
74+
src/
75+
data/
76+
papers.json
77+
pages/
78+
ResearchPage.jsx
79+
```
80+
81+
82+
## How to add new papers (NO code needed)
83+
84+
All papers live in **`src/data/papers.json`**. To add a new paper:
85+
86+
1. Open `src/data/papers.json` in any text editor or directly on GitHub (click the file → pencil icon to edit)
87+
2. Copy this template and paste it before the last `]`:
88+
89+
```json
90+
{
91+
"id": "7",
92+
"title": "Your Paper Title Here",
93+
"authors": ["First Author", "Second Author"],
94+
"abstract": "A short summary of the paper (2-4 sentences).",
95+
"topics": ["Topic1", "Topic2", "Topic3"],
96+
"type": "whitepaper",
97+
"year": 2025,
98+
"pdfUrl": "https://link-to-pdf-or-google-drive.com/...",
99+
"thumbnail": null
100+
}
101+
```
102+
103+
3. Save / commit the file
104+
4. The website will automatically show the new paper
105+
106+
### Field reference
107+
108+
| Field | Required | Options / Notes |
109+
|-------------|----------|----------------------------------------------------------------------|
110+
| `id` | Yes | Unique string number (increment from last entry) |
111+
| `title` | Yes | Full paper title |
112+
| `authors` | Yes | Array of author name strings |
113+
| `abstract` | Yes | 1–4 sentence summary shown on the card |
114+
| `topics` | Yes | Array of topic tags (used for filtering); use existing ones or new |
115+
| `type` | Yes | `"whitepaper"`, `"research"`, or `"thread"` |
116+
| `year` | Yes | Publication year as a number, e.g. `2024` |
117+
| `pdfUrl` | Yes | Full URL to PDF, Google Drive view link, or arXiv. `""` = Coming Soon|
118+
| `thumbnail` | No | Path to a cover image (optional, leave `null` if not used) |
119+
120+
---
121+
122+
## Google Drive PDF links
123+
124+
For Google Drive, use the **viewer link** format:
125+
```
126+
https://drive.google.com/file/d/FILE_ID/view
127+
```
128+
This opens an in-browser reader, which works perfectly with the "Read Paper" button.
129+
130+
---
131+
132+
## Want inline PDF reading (no leaving the site)?
133+
134+
If you want papers to open in an embedded reader within the website instead of a new tab, we can add a modal with `react-pdf`. Let us know!

src/App.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import PageNotFound from "./Pages/PageNotFound";
77
import { CssBaseline, ThemeProvider, createTheme } from "@mui/material";
88
import Privacy from "./Pages/Privacy";
99
import Footer from "./Components/Footer";
10-
import ThreatModel from "./Pages/ThreatModel";
10+
import ResearchPage from "./Pages/ResearchPage";
11+
import PaperReader from "./Pages/PaperReader";
1112

1213
const theme = createTheme();
1314

@@ -22,7 +23,8 @@ function App() {
2223
<Route path="/features" element={<FeaturesPage />} />
2324
<Route path="*" element={<PageNotFound />} />
2425
<Route path="/privacy-policy/" element={<Privacy />} />
25-
<Route path="/threat-model" element={<ThreatModel />} />
26+
<Route path="/research" element={<ResearchPage />} />
27+
<Route path="/research/:id" element={<PaperReader />} />
2628
</Routes>
2729
</div>
2830
<Footer />

0 commit comments

Comments
 (0)