Skip to content

Commit 43c454d

Browse files
authored
docs: update README with current project structure and fork-first setup (#256)
- Update project structure section with comprehensive directory listing - Revise setup instructions to start with forking repository - Add upstream remote setup for proper Git workflow - Correct environment setup (no .env.example file exists) - Update prerequisites with current Node.js v18+ requirement - Add comprehensive script documentation - Enhance technical stack with current versions - Improve formatting and developer-friendly documentation Resolves #180
1 parent b2e0fdf commit 43c454d

1 file changed

Lines changed: 250 additions & 54 deletions

File tree

README.md

Lines changed: 250 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,244 @@
22

33
Boundless is a decentralized crowdfunding and grants platform built on the Stellar blockchain that empowers creators, innovators, and communities to launch and fund projects in a transparent and secure manner. Leveraging Soroban smart contracts, the platform facilitates milestone-based fund releases with built-in escrow mechanisms, ensuring that funds are only released when specific project milestones are met and independently verified. This approach minimizes risks for backers and provides creators with the financial support they need to drive innovation forward.
44

5-
## Key Features
5+
## Key Features
66

77
- **Decentralized crowdfunding and grant management** on the Stellar blockchain
88
- **Milestone-based fund distribution** using escrow and smart contracts
99
- **Secure and transparent community voting and feedback systems**
1010
- **Flexible user roles** including campaign creators, grant applicants, managers, and admins
1111
- **Integrated authentication** with email, social login, and KYC verification
12+
- **Multi-wallet support** for Stellar ecosystem (Freighter, Albedo, Rabet, xBull, Lobstr, Hana, HOT Wallet)
1213
- **Comprehensive backend support** with RESTful API endpoints and robust security measures
1314
- **Automated contract deployment and upgrade processes** using CI/CD pipelines
1415

15-
## Technical Details
16+
## 🛠️ Technical Stack
1617

1718
- **Smart Contracts:** Rust (Soroban SDK)
18-
- **Frontend:** TypeScript, Next.js, Tailwind CSS, Zustand
19+
- **Frontend:** TypeScript, Next.js 15, React 19, Tailwind CSS, Zustand
1920
- **Backend:** Node.js, RESTful APIs, Prisma ORM, PostgreSQL
2021
- **Blockchain Integration:** Stellar SDK, Soroban smart contracts
22+
- **Authentication:** NextAuth.js v5 with Google OAuth and credentials
23+
- **UI Components:** Radix UI primitives with custom styling
24+
- **Animations:** GSAP, Framer Motion
2125
- **DevOps:** GitHub Actions, Vercel, Docker
2226

23-
## User Flow
27+
## 📁 Project Structure
28+
29+
```
30+
boundless/
31+
├── app/ # Next.js App Router
32+
│ ├── (landing)/ # Landing page routes
33+
│ │ ├── about/ # About page components
34+
│ │ ├── blog/ # Blog functionality
35+
│ │ ├── code-of-conduct/ # Code of conduct page
36+
│ │ ├── contact/ # Contact page
37+
│ │ ├── disclaimer/ # Disclaimer page
38+
│ │ ├── grants/ # Grants information
39+
│ │ ├── hackathons/ # Hackathon pages
40+
│ │ ├── privacy/ # Privacy policy
41+
│ │ ├── projects/ # Projects page
42+
│ │ ├── terms/ # Terms of service
43+
│ │ ├── waitlist/ # Waitlist signup
44+
│ │ ├── layout.tsx # Landing layout
45+
│ │ └── page.tsx # Landing page
46+
│ ├── api/ # API routes
47+
│ │ ├── auth/ # Authentication endpoints
48+
│ │ └── waitlist/ # Waitlist API
49+
│ ├── auth/ # Authentication pages
50+
│ │ ├── email-verified/ # Email verification success
51+
│ │ ├── forgot-password/ # Password reset request
52+
│ │ ├── reset-password/ # Password reset form
53+
│ │ ├── signin/ # Sign in page
54+
│ │ ├── signup/ # Sign up page
55+
│ │ └── verify-email/ # Email verification
56+
│ ├── comment/ # Comment functionality
57+
│ ├── dashboard/ # User dashboard
58+
│ ├── preview/ # Preview functionality
59+
│ ├── test/ # Test pages
60+
│ ├── user/ # User-specific pages
61+
│ │ ├── campaigns/ # User campaigns
62+
│ │ ├── projects/ # User projects
63+
│ │ └── layout.tsx # User layout
64+
│ ├── error.tsx # Error page
65+
│ ├── favicon.ico # Site favicon
66+
│ ├── globals.css # Global styles
67+
│ ├── layout.tsx # Root layout
68+
│ ├── loading.tsx # Loading page
69+
│ ├── not-found.tsx # 404 page
70+
│ ├── providers.tsx # App providers
71+
│ ├── robots.ts # Robots.txt
72+
│ └── sitemap.ts # Sitemap generation
73+
├── components/ # React components
74+
│ ├── About-Mission/ # About mission components
75+
│ ├── auth/ # Authentication components
76+
│ ├── buttons/ # Button components
77+
│ ├── campaigns/ # Campaign-related components
78+
│ │ ├── back-project/ # Project backing flow
79+
│ │ ├── backing-history/ # Backing history
80+
│ │ ├── launch/ # Campaign launch
81+
│ │ └── LaunchCampaignFlow.tsx
82+
│ ├── comment/ # Comment components
83+
│ ├── comments/ # Comments system
84+
│ ├── connect-wallet/ # Wallet connection UI
85+
│ ├── landing-page/ # Landing page components
86+
│ ├── layout/ # Layout components
87+
│ ├── loading/ # Loading components
88+
│ ├── overview/ # Overview components
89+
│ ├── project/ # Project components
90+
│ ├── providers/ # Provider components
91+
│ ├── sheet/ # Sheet components
92+
│ ├── skeleton/ # Skeleton components
93+
│ ├── stepper/ # Stepper components
94+
│ ├── testimonials/ # Testimonial components
95+
│ ├── ui/ # Reusable UI components (48 components)
96+
│ ├── wallet/ # Wallet-related components
97+
│ └── waitlist/ # Waitlist components
98+
├── hooks/ # Custom React hooks
99+
│ ├── use-account.ts # Account management hook
100+
│ ├── use-auth.ts # Authentication hook
101+
│ ├── use-fadegradient.ts # Fade gradient hook
102+
│ ├── use-local-storage-draft.ts # Local storage draft hook
103+
│ ├── use-mobile.ts # Mobile detection hook
104+
│ ├── use-notifications.ts # Notifications hook
105+
│ ├── use-wallet-protection.ts # Wallet protection hook
106+
│ └── use-wallet.ts # Wallet management hook
107+
├── lib/ # Utility libraries
108+
│ ├── api/ # API client and types
109+
│ ├── auth/ # Authentication utilities
110+
│ ├── data/ # Data utilities
111+
│ ├── stores/ # Zustand stores
112+
│ ├── wallet-utils.ts # Wallet utilities
113+
│ ├── utils.ts # General utilities
114+
│ ├── config.ts # Configuration
115+
│ ├── logger.ts # Logging utilities
116+
│ ├── metadata.ts # Metadata utilities
117+
│ ├── mock.ts # Mock data
118+
│ ├── motion.ts # Motion utilities
119+
│ └── structured-data.ts # Structured data
120+
├── types/ # TypeScript type definitions
121+
│ ├── project.ts # Project types
122+
│ ├── backing-history.ts # Backing history types
123+
│ └── logger.types.ts # Logger types
124+
├── public/ # Static assets
125+
│ ├── wallets/ # Wallet icons
126+
│ ├── landing/ # Landing page assets
127+
│ ├── auth/ # Authentication assets
128+
│ ├── empty/ # Empty state assets
129+
│ └── team/ # Team assets
130+
├── scripts/ # Build and deployment scripts
131+
│ └── setup-branch-protection.sh
132+
├── constants/ # Application constants
133+
├── auth.ts # NextAuth configuration
134+
├── middleware.ts # Next.js middleware
135+
├── next.config.ts # Next.js configuration
136+
├── tsconfig.json # TypeScript configuration
137+
├── eslint.config.mjs # ESLint configuration
138+
├── postcss.config.mjs # PostCSS configuration
139+
├── components.json # UI components configuration
140+
├── vercel.json # Vercel deployment configuration
141+
├── package.json # Dependencies and scripts
142+
├── package-lock.json # Package lock file
143+
├── CONTRIBUTING.md # Contribution guidelines
144+
├── DEVELOPMENT.md # Development workflow
145+
└── LICENSE # MIT License
146+
```
147+
148+
## 🚀 Getting Started
149+
150+
### Prerequisites
151+
152+
Before you begin, ensure you have the following installed:
153+
154+
- **Node.js** (v18 or higher) - [Download here](https://nodejs.org/)
155+
- **npm** or **yarn** - Package manager
156+
- **Git** - Version control
157+
- **Docker** (optional) - For local blockchain and database services
158+
159+
### Installation
160+
161+
1. **Fork the repository:**
162+
- Go to [boundless-frontend](https://github.com/boundlessfi/boundless-frontend)
163+
- Click the "Fork" button in the top-right corner
164+
- This creates a copy of the repository in your GitHub account
165+
166+
2. **Clone your fork:**
167+
```bash
168+
git clone https://github.com/YOUR_USERNAME/boundless-frontend.git
169+
cd boundless-frontend
170+
```
171+
172+
3. **Add upstream remote:**
173+
```bash
174+
git remote add upstream https://github.com/boundlessfi/boundless-frontend.git
175+
```
176+
177+
4. **Install dependencies:**
178+
```bash
179+
npm install
180+
# or
181+
yarn install
182+
```
183+
184+
5. **Configure environment variables:**
185+
Create a `.env.local` file in the root directory:
186+
```bash
187+
touch .env.local
188+
```
189+
190+
Fill in the required environment variables in `.env.local`:
191+
```env
192+
# NextAuth Configuration
193+
NEXTAUTH_SECRET=your-secret-key
194+
NEXTAUTH_URL=http://localhost:3000
195+
196+
# Google OAuth (optional)
197+
GOOGLE_CLIENT_ID=your-google-client-id
198+
GOOGLE_CLIENT_SECRET=your-google-client-secret
199+
200+
# API Configuration
201+
NEXT_PUBLIC_API_URL=http://localhost:8000/api
202+
203+
# Stellar Configuration
204+
NEXT_PUBLIC_STELLAR_NETWORK=testnet
205+
NEXT_PUBLIC_APP_URL=http://localhost:3000
206+
```
207+
208+
6. **Run the development server:**
209+
```bash
210+
npm run dev
211+
# or
212+
yarn dev
213+
```
214+
215+
7. **Open your browser:**
216+
Navigate to [http://localhost:3000](http://localhost:3000) to see the application.
217+
218+
### Available Scripts
219+
220+
```bash
221+
# Development
222+
npm run dev # Start development server
223+
npm run build # Build for production
224+
npm run start # Start production server
225+
226+
# Code Quality
227+
npm run lint # Run ESLint
228+
npm run lint:fix # Run ESLint with auto-fix
229+
npm run type-check # Run TypeScript type checking
230+
npm run format # Format code with Prettier
231+
npm run format:check # Check formatting without changing files
232+
233+
# Testing
234+
npm run test # Run tests
235+
npm run test:watch # Run tests in watch mode
236+
npm run test:coverage # Run tests with coverage
237+
238+
# Git Hooks
239+
npm run prepare # Install Husky hooks
240+
```
241+
242+
## 🔄 User Flow
24243

25244
```mermaid
26245
flowchart TD
@@ -82,65 +301,42 @@ flowchart TD
82301
H7 --> H8["Disburse Prizes via Soroban"]
83302
```
84303

85-
## Getting Started
304+
## 🤝 Contributing
86305

87-
### Prerequisites
88-
89-
- Node.js (v18+)
90-
- npm or yarn
91-
- Docker (for local blockchain and database)
92-
93-
### Installation
94-
95-
1. **Clone the repository:**
96-
```bash
97-
git clone https://github.com/boundlessfi/boundless-frontend.git
98-
cd boundless-frontend
99-
```
100-
2. **Install dependencies:**
101-
```bash
102-
npm install
103-
# or
104-
yarn install
105-
```
106-
3. **Configure environment variables:**
107-
- Copy `.env.example` to `.env` and fill in required values.
306+
We welcome contributions from the community! Please follow these steps:
108307

109-
4. **Run local development server:**
308+
1. **Fork the repository** and create your branch from `main`
309+
2. **Clone your fork** and set up the project locally
310+
3. **Create a descriptive branch name** (e.g., `feature/add-auth`, `fix/typo-in-readme`)
311+
4. **Make your changes** with clear, concise commits following [Conventional Commits](https://www.conventionalcommits.org/)
312+
5. **Write tests** for new features or bug fixes
313+
6. **Ensure all tests pass** and code quality checks pass
314+
7. **Open a pull request** with a clear description of your changes
110315

111-
```bash
112-
npm run dev
113-
# or
114-
yarn dev
115-
```
316+
For detailed contribution guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).
116317

117-
5. **Run tests:**
318+
For development workflow and best practices, see [DEVELOPMENT.md](DEVELOPMENT.md).
118319

119-
```bash
120-
npm test
121-
# or
122-
yarn test
123-
```
320+
## 📄 License
124321

125-
6. **Build for production:**
126-
```bash
127-
npm run build
128-
# or
129-
yarn build
130-
```
322+
This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.
131323

132-
## Contributing
324+
## 🙏 Acknowledgements
133325

134-
Contributions are welcome! Please open issues and submit pull requests for new features, bug fixes, or improvements. See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
326+
- [Stellar Development Foundation](https://stellar.org/)
327+
- [Soroban SDK](https://soroban.stellar.org/)
328+
- [Next.js](https://nextjs.org/), [Tailwind CSS](https://tailwindcss.com/), [Zustand](https://zustand-demo.pmnd.rs/)
329+
- [Radix UI](https://www.radix-ui.com/) for accessible components
330+
- [GSAP](https://greensock.com/gsap/) for animations
331+
- [Docker](https://www.docker.com/), [Vercel](https://vercel.com/), [GitHub Actions](https://github.com/features/actions)
135332

136-
## License
333+
## 📞 Support
137334

138-
This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.
335+
- **Documentation:** [GitHub Wiki](https://github.com/boundlessfi/boundless-frontend/wiki)
336+
- **Issues:** [GitHub Issues](https://github.com/boundlessfi/boundless-frontend/issues)
337+
- **Discussions:** [GitHub Discussions](https://github.com/boundlessfi/boundless-frontend/discussions)
338+
- **Email:** hello@boundlessfi.xyz
139339

140-
## Acknowledgements
340+
---
141341

142-
- Stellar Development Foundation
143-
- Soroban SDK
144-
- Next.js, Tailwind CSS, Zustand
145-
- MongoDB
146-
- Docker, Vercel, GitHub Actions
342+
**Made with ❤️ by the Boundless team**

0 commit comments

Comments
 (0)