FundMeUp is a crowdfunding platform that connects entrepreneurs with investors and mentors. It focuses on showcasing founder potential, refining pitches with AI, and fostering transparent connections between talent and capital.
- Frontend: React, Vite, TypeScript, Tailwind CSS
- Backend: Express.js (for local authentication), Python Flask (for AI assistant)
- Routing: React Router
- Icons: Lucide React
- AI: Google Gemini API
- Local Authentication: User authentication is handled locally using
server.mjsandusers.json. This is a temporary solution for development. - Mocked Campaign Data: Campaign data is currently mocked in
src/lib/api.tsusing local placeholder images. - AI Assistant (Chatbot): Powered by a Python Flask backend using the Google Gemini API (
gemini-2.0-flash-lite). - Freelancer Profile Form: Allows freelancers to submit their profiles, including skills, years of experience, and an optional co-build link. Data is stored in
freelancers.json.
Follow these steps to set up and run the project locally.
- Node.js (LTS version recommended)
- Python 3.8+
npmoryarn
- Clone the repository:
git clone <your-repository-url> cd FundMeUp
- Install Node.js dependencies:
npm install
- Setup Python virtual environment and dependencies:
Note: If
cd python-backend python -m venv venv # On Windows: .\venv\Scripts\activate # On macOS/Linux: source venv/bin/activate pip install -r requirements.txt # (Assuming requirements.txt exists or you'll install flask, google-generativeai, flask-cors manually) deactivate # Exit virtual environment cd ..
requirements.txtis missing, you'll need to installFlask,google-generativeai, andFlask-CORSmanually within the virtual environment.
The AI assistant requires a GOOGLE_API_KEY. You need to obtain this from the Google AI Studio.
Create a .env file in the python-backend directory and add your API key:
GOOGLE_API_KEY=YOUR_ACTUAL_GOOGLE_API_KEY
To run the frontend, local authentication backend, and Python AI backend concurrently:
npm run devThis command will:
- Start the local authentication server (
server.mjs) onhttp://localhost:3001. - Start the Python AI backend on
http://localhost:5000. - Start the React development server (usually on
http://localhost:5173).
npm run dev: Starts all development servers (frontend, local Express backend, Python backend).npm run start:backend: Starts only the local Express authentication server.npm run start:python: Starts only the Python AI backend.npm run build: Builds the React app for production.npm run lint: Lints the project code.npm run preview: Serves the production build locally.npm run typecheck: Runs TypeScript type checking.
- Coding Style: ESLint is used to enforce consistent coding style.
- Testing: No explicit testing practices are currently defined.
- Contribution: No formal contribution guidelines are defined.
- Incomplete Investor Onboarding: The "Investor" role has a multi-step onboarding process that is not fully implemented.
- Inconsistent File Extensions: The
src/pagesdirectory contains a mix of.tsxand.jsxfiles; standardization to.tsxis recommended. useAuthHook Structure: TheuseAuthhook is a simple context wrapper, with authentication logic primarily insrc/context/AuthContext.tsx.
users.json: Stores local user authentication data.freelancers.json: Stores submitted freelancer profile data.
These files are automatically created if they don't exist and are managed by the local Express backend. They are included in .gitignore to prevent committing sensitive local data.