A full-stack mobile platform connecting refugees and helpers for community-driven support. It features real-time profile management, location-based services, and secure OTP-based authentication to foster collaborative aid within communities.
MayaCode is a cross-platform mobile application designed to bridge the gap between refugees and local helpers. Users can manage profiles, create or respond to help requests, and engage with their communities in real-time—all while maintaining a secure and seamless experience.
- Dual-Role User System: Seamlessly switch between Refugee and Helper roles with distinct functionalities.
- Real-Time Profile Management: Update user details instantly, including language preferences and profile images.
- Location-Based Services: Use Google Maps integration to discover and filter posts by proximity.
- Interactive Post System: Create and manage help requests, offers, and community stories dynamically.
- Live Statistics Dashboard: Track contributions, engagements, and user activity analytics.
- Multi-Language Support (Planned): Support for localized experiences based on user preferences.
- Secure OTP Authentication: Phone-based login with JWT session management via Appwrite.
- Image Upload & Management: Enable image attachments to profiles and posts for enriched interaction.
- Frontend: React Native, Expo, TypeScript
- Backend: Node.js, Express.js
- Database: MongoDB
- Authentication: Appwrite
- Maps & Location: Google Maps API
- Deployment: Render (Backend), Expo EAS (Frontend)
- Node.js and npm
- Expo CLI (install with
npm install -g expo-cli) - A running MongoDB instance (local or cloud)
- Appwrite instance (for OTP authentication)
- Google Maps API Key
-
Clone the repository:
git clone https://github.com/yourusername/mayacode.git cd mayacode -
Install root dependencies (if applicable):
npm install
-
Configure environment variables:
- Create a
.envfile in both the frontend and backend directories. - Add your API keys and backend URLs as needed. Refer to
eas.jsonfor frontend config examples.
- Create a
-
Start the backend server:
cd MayaCodeBackend npm install npm start -
Start the frontend application:
cd ../MayaCode expo start
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/users/phone/:phone |
Create or update user profile |
| GET | /api/users/phone/:phone |
Retrieve user profile |
| PUT | /api/users/phone/:phone |
Update user profile |
| DELETE | /api/users/phone/:phone |
Delete user profile |
| POST | /api/users/phone/:phone/posts |
Add a new post (help/offer/story) |
| PUT | /api/users/phone/:phone/stats |
Update user statistics |
ℹ️ For full API documentation, refer to the backend code in
/MayaCodeBackend/routes/.
We welcome contributions from the community!
To contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature/your-feature-name) - Make your changes and commit (
git commit -m "Your message") - Push to your fork (
git push origin feature/your-feature-name) - Open a Pull Request
Please ensure your code follows the project’s style and includes tests where applicable.