DevAsign Mobile App is a modern, mobile-first web application designed for developers to discover opportunities, manage tasks, and track earnings on the go. Built with React and TypeScript, it provides a seamless experience for navigating the DevAsign ecosystem.
- Task Explorer: Browse available bounties and development tasks.
- Task Management: Track your active and completed tasks in one place.
- Bounty Details: View detailed information about bounties, including requirements and rewards.
- Submission System: Submit your work directly through the app and view submission status.
- Wallet & Earnings: Monitor your earnings, view transaction history, and manage your wallet.
- In-App Messaging: Communicate with task creators and other developers.
- Notifications: Stay updated with real-time alerts for task updates and messages.
- User Profile: manageable profile and settings.
- Framework: React
- Build Tool: Vite
- Language: TypeScript
- Routing: React Router
- Styling: Vanilla CSS with a custom design system
- Icons: Lucide React
- Charts: Recharts
Follow these steps to set up and run the project locally.
- Node.js (v18 or higher recommended)
- npm or pnpm
- Docker and Docker Compose (for local database and redis)
-
Clone the repository:
git clone https://github.com/bishopBethel/devasign-mobile-app.git cd devasign-mobile-app -
Install dependencies:
pnpm install
-
Set up the development environment (Postgres & Redis):
docker compose up -d
To stop the development environment:
docker compose downThis project uses a single .env file at the root for configuration. Copy the example file and fill in your values:
cp .env.example .envThe .env.example file documents all available variables, organized into the following groups:
| Group | Variables | Required |
|---|---|---|
| General | NODE_ENV, PORT |
No (defaults provided) |
| Database | POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_DB, POSTGRES_HOST, POSTGRES_PORT |
Yes |
| Redis | REDIS_URL |
No |
| GitHub OAuth | GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, GITHUB_CALLBACK_URL |
No |
| JWT | JWT_SECRET, JWT_EXPIRES_IN |
Yes* |
| Stellar | STELLAR_NETWORK, STELLAR_HORIZON_URL, STELLAR_ISSUER_SECRET |
No |
| Gemini AI | GEMINI_API_KEY |
Yes |
The API automatically composes DATABASE_URL from the individual POSTGRES_* variables at startup, so you only need to define your credentials once. You can also set DATABASE_URL directly to override this behavior. Missing optional variables will produce a startup warning indicating which integrations are disabled.
Start the development server:
npm run devThe application will be available at http://localhost:5173 (or the port shown in your terminal).
To build the application for production:
npm run buildThis will generate the optimized files in the dist directory.