Skip to content

satoshisghost/cashfunder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💸 Cash Funder

The Smarter Fundraising Platform — built for schools, sports teams, clubs, and nonprofits.

A full-stack fundraising app inspired by MoneyDolly, built with React + Node.js + MongoDB, ready to deploy on Railway.


🚀 Features

  • Campaign Management — Create and manage multiple fundraising campaigns
  • Participant Pages — Each participant gets a unique shareable link
  • Live Leaderboards — Real-time rankings by amount raised
  • Donation Feed — Live stream of contributions
  • Admin Dashboard — Full control over campaigns, participants, and donations
  • Goal Tracking — Visual progress bars and percentage tracking
  • Anonymous Donations — Donors can give privately
  • Platform Stats — Total raised, campaigns, participants displayed on homepage

🛠 Tech Stack

Layer Tech
Frontend React 18, React Router v6
Backend Node.js, Express
Database MongoDB (Mongoose)
Auth JWT (jsonwebtoken + bcryptjs)
Deployment Railway

📦 Project Structure

cashfunder/
├── server/
│   ├── index.js              # Express entry point
│   ├── middleware/auth.js    # JWT middleware
│   ├── models/               # Mongoose models
│   │   ├── Campaign.js
│   │   ├── Donation.js
│   │   ├── Participant.js
│   │   └── User.js
│   └── routes/               # API routes
│       ├── auth.js
│       ├── campaigns.js
│       ├── donations.js
│       ├── participants.js
│       └── stats.js
├── client/
│   ├── public/index.html
│   └── src/
│       ├── App.js
│       ├── index.js
│       ├── index.css
│       ├── context/AuthContext.js
│       ├── components/Navbar.js
│       └── pages/
│           ├── Home.js
│           ├── Login.js
│           ├── Register.js
│           ├── Dashboard.js
│           ├── NewCampaign.js
│           ├── CampaignPage.js
│           └── ParticipantPage.js
├── package.json
├── Procfile
├── railway.toml
└── .env.example

⚡ Deploy to Railway

1. Push to GitHub

git init
git add .
git commit -m "Initial commit — Cash Funder"
git remote add origin https://github.com/YOUR_USERNAME/cashfunder.git
git push -u origin main

2. Create Railway Project

  1. Go to railway.app and log in
  2. Click New Project → Deploy from GitHub repo
  3. Select your cashfunder repository
  4. Railway will auto-detect Node.js and start deploying

3. Add MongoDB

  1. In your Railway project, click + New → Database → MongoDB
  2. Railway will auto-inject MONGODB_URL into your environment

4. Set Environment Variables

In Railway → your service → Variables, add:

Variable Value
MONGODB_URI (copy from the MongoDB service's MONGODB_URL)
JWT_SECRET (any long random string, e.g. cashfunder_secret_2025_xyz)
NODE_ENV production
CLIENT_URL (your Railway app URL, e.g. https://cashfunder.up.railway.app)

5. Done! 🎉

Railway builds and deploys automatically. Visit your app URL.


💻 Local Development

# 1. Clone the repo
git clone https://github.com/YOUR_USERNAME/cashfunder.git
cd cashfunder

# 2. Install server dependencies
npm install

# 3. Install client dependencies
cd client && npm install && cd ..

# 4. Set up environment
cp .env.example .env
# Edit .env with your MongoDB URI and JWT secret

# 5. Run both server + client
npm run dev

App runs at:


🔌 API Reference

Method Endpoint Auth Description
POST /api/auth/register No Create account
POST /api/auth/login No Login
GET /api/auth/me Yes Get current user
GET /api/campaigns No List campaigns
GET /api/campaigns/slug/:slug No Get campaign by slug
GET /api/campaigns/mine Yes My campaigns
POST /api/campaigns Yes Create campaign
GET /api/participants/campaign/:id No Campaign leaderboard
GET /api/participants/link/:link No Participant page data
POST /api/participants Yes Add participant
GET /api/donations/campaign/:id No Campaign donations
POST /api/donations No Submit donation
GET /api/stats/platform No Platform-wide stats

🎨 Branding

  • Colors: #00C47C (green), #FFD700 (gold), #0A0F0D (dark)
  • Fonts: Syne (display), DM Sans (body) via Google Fonts
  • Theme: Dark, modern, energetic — built for youth sports & schools

🔮 Roadmap / Next Steps

  • Stripe payment integration (replace simulated donations)
  • Email notifications (SendGrid / Nodemailer)
  • Product catalog (like MoneyDolly's 175+ products)
  • Admin: add/remove participants from dashboard
  • SMS sharing via Twilio
  • Mobile app (React Native)

📄 License

MIT — built by Cash Funder. Use freely.

About

CashFunder - The Ultimate Fundraising Platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages