{"id":31658233,"url":"https://github.com/lusan-sapkota/ghosttalk","last_synced_at":"2026-05-06T02:34:59.245Z","repository":{"id":287619106,"uuid":"961482997","full_name":"Lusan-sapkota/GhostTalk","owner":"Lusan-sapkota","description":"GhostTalk emerged from a simple idea: digital communication should be private by default. In today's world where personal data is harvested and conversations are monitored, Ghosttalk a space where you can communicate freely without worrying about permanent digital footprints","archived":false,"fork":false,"pushed_at":"2025-09-09T10:23:31.000Z","size":76914,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-09T12:56:04.474Z","etag":null,"topics":["capacitor","chat-application","end-to-end-encryption","ionic","javascript","python","react","tyepscript"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lusan-sapkota.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-06T16:06:07.000Z","updated_at":"2025-09-09T10:23:42.000Z","dependencies_parsed_at":"2025-09-09T11:32:01.577Z","dependency_job_id":"7519498b-afb6-4a99-b499-930f3c680126","html_url":"https://github.com/Lusan-sapkota/GhostTalk","commit_stats":null,"previous_names":["lusan-sapkota/ghosttalk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Lusan-sapkota/GhostTalk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lusan-sapkota%2FGhostTalk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lusan-sapkota%2FGhostTalk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lusan-sapkota%2FGhostTalk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lusan-sapkota%2FGhostTalk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lusan-sapkota","download_url":"https://codeload.github.com/Lusan-sapkota/GhostTalk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lusan-sapkota%2FGhostTalk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278795660,"owners_count":26047253,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["capacitor","chat-application","end-to-end-encryption","ionic","javascript","python","react","tyepscript"],"created_at":"2025-10-07T15:15:46.296Z","updated_at":"2025-10-07T15:15:51.549Z","avatar_url":"https://github.com/Lusan-sapkota.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GhostTalk - Social Network App\n\n## Development Status\n\nThis project is under active development. Core backend and frontend scaffolding is in place, but several features and polish remain.\n\nPlanned / in-progress work:\n- Real-time notifications and video calling\n- Chat improvements and WebSocket stability\n- Rich-text editor and media handling for posts\n- Expanded test coverage and CI configuration\n- Performance, security hardening, and production deployment scripts\n\nContributions welcome — please open issues or PRs. For local development, follow the Installation \u0026 Setup section above.\n\nA full-stack social networking application built with Django REST API backend and React Native (Expo) frontend. Features include user authentication, posts, comments, likes, friend requests, real-time chat, and more.\n\n## 🚀 Features\n\n### Core Features\n\n- **User Authentication**: Register, login, profile management\n- **Social Feed**: View posts from followed users\n- **Post Management**: Create, edit, delete posts with rich text support\n- **Interactions**: Like posts and comments, save posts\n- **Friend System**: Send/accept friend requests, manage friendships\n- **Real-time Chat**: Private messaging between friends\n- **Notifications**: Get notified of likes, comments, follows, and friend requests\n- **Search**: Find posts and users\n\n### Technical Features\n\n- **RESTful API**: Well-documented Django REST API\n- **Real-time Communication**: WebSocket support for chat\n- **Responsive Design**: Mobile-first React Native app\n- **Cross-platform**: iOS and Android support via Expo\n- **Secure**: JWT token authentication, input validation\n- **Scalable**: Modular architecture with proper separation of concerns\n\n## 🛠 Tech Stack\n\n### Backend\n\n- **Django** - Web framework\n- **Django REST Framework** - API development\n- **PostgreSQL** - Database (SQLite for development)\n- **Channels** - WebSocket support for real-time features\n- **Celery** - Background task processing\n- **Redis** - Caching and message broker\n\n### Frontend\n\n- **React Native** - Mobile app framework\n- **Expo** - Development platform\n- **TypeScript** - Type safety\n- **React Navigation** - Navigation\n- **Axios** - HTTP client\n- **AsyncStorage** - Local storage\n\n## 📋 Prerequisites\n\n- Python 3.8+\n- Node.js 16+\n- npm or yarn\n- PostgreSQL (optional, SQLite works for development)\n- Redis (for production/real-time features)\n\n## 🔧 Installation \u0026 Setup\n\n### Backend Setup\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/Lusan-sapkota/GhostTalk.git\n   cd GhostTalk/backend\n   ```\n\n2. **Create virtual environment**\n\n   ```bash\n   python -m venv venv\n   source venv/bin/activate  # On Windows: venv\\Scripts\\activate\n   ```\n\n3. **Install dependencies**\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n4. **Database setup**\n\n   ```bash\n   python manage.py migrate\n   ```\n\n5. **Create superuser**\n\n   ```bash\n   python manage.py createsuperuser\n   ```\n\n6. **Run development server**\n\n   ```bash\n   python manage.py runserver\n   ```\n\n   The API will be available at `http://localhost:8000`\n\n### Frontend Setup\n\n1. **Navigate to frontend directory**\n\n   ```bash\n   cd ../frontend/GhostTalk\n   ```\n\n2. **Install dependencies**\n\n   ```bash\n   npm install\n   ```\n\n3. **Install additional packages**\n\n   ```bash\n   npm install axios @react-native-async-storage/async-storage\n   ```\n\n4. **Start development server**\n\n   ```bash\n   npm start\n   ```\n\n5. **Run on device/emulator**\n\n   ```bash\n   # For iOS\n   npm run ios\n\n   # For Android\n   npm run android\n\n   # For web\n   npm run web\n   ```\n\n## 📱 API Documentation\n\n### Authentication Endpoints\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| POST | `/user/register/` | User registration |\n| POST | `/api/auth/token/` | User login |\n| GET | `/user/me/` | Get current user profile |\n| PUT | `/user/me/` | Update user profile |\n\n### Post Endpoints\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| GET | `/home/` | Get all posts |\n| GET | `/feed/` | Get posts from followed users |\n| POST | `/post/new/` | Create new post |\n| GET | `/post/{id}/` | Get post details |\n| PUT | `/post/{id}/update/` | Update post |\n| DELETE | `/post/{id}/delete/` | Delete post |\n| POST | `/post/like/` | Like/unlike post |\n| POST | `/post/save/` | Save/unsave post |\n\n### Friend System Endpoints\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| GET | `/friend/list/{user_id}` | Get user's friends |\n| POST | `/friend/friend_request/` | Send friend request |\n| GET | `/friend/friend_requests/{user_id}/` | Get friend requests |\n| GET | `/friend/friend_request_accept/{id}/` | Accept friend request |\n| GET | `/friend/friend_request_decline/{id}/` | Decline friend request |\n| POST | `/friend/friend_remove/` | Remove friend |\n\n### Chat Endpoints\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| GET | `/chats/` | Get user's chat rooms |\n| POST | `/chats/chat/{friend_id}` | Create/start chat with friend |\n| GET | `/chats/room/{room_id}-{friend_id}` | Get chat messages |\n\n### Notification Endpoints\n\n| Method | Endpoint | Description |\n|--------|----------|-------------|\n| GET | `/notifications/` | Get user notifications |\n\n## 🎯 Usage\n\n### Backend Development\n\n1. **Run migrations after model changes**\n\n   ```bash\n   python manage.py makemigrations\n   python manage.py migrate\n   ```\n\n2. **Create API views** in respective app directories\n3. **Test API endpoints** using tools like Postman or curl\n4. **Run tests**\n\n   ```bash\n   python manage.py test\n   ```\n\n### Frontend Development\n\n1. **Update API calls** in `app/api.ts`\n2. **Create new screens** in `app/screens/`\n3. **Add components** in `components/`\n4. **Update navigation** in respective layout files\n5. **Test on multiple platforms**\n\n## 🏗 Project Structure\n\n```\nGhostTalk/\n├── backend/\n│   ├── myproject/          # Main Django project\n│   ├── blog/              # Posts and comments app\n│   ├── users/             # User management app\n│   ├── friend/            # Friend system app\n│   ├── chat/              # Chat functionality app\n│   ├── notification/      # Notifications app\n│   ├── videocall/         # Video calling app\n│   ├── db.sqlite3         # Database\n│   ├── manage.py          # Django management script\n│   └── requirements.txt   # Python dependencies\n├── frontend/\n│   └── GhostTalk/\n│       ├── app/\n│       │   ├── (tabs)/    # Main tab screens\n│       │   ├── screens/   # Additional screens\n│       │   ├── api.ts     # API integration\n│       │   └── _layout.tsx # Root layout\n│       ├── components/    # Reusable components\n│       ├── constants/     # App constants\n│       ├── hooks/         # Custom hooks\n│       └── package.json   # Node dependencies\n└── README.md\n```\n\n## 🔒 Security Features\n\n- **JWT Authentication**: Secure token-based authentication\n- **Input Validation**: Server-side validation for all inputs\n- **CORS Protection**: Configured for frontend-backend communication\n- **Rate Limiting**: API rate limiting to prevent abuse\n- **Data Sanitization**: HTML sanitization for rich text content\n\n## 🚀 Deployment\n\n### Backend Deployment\n\n1. Set `DEBUG = False` in settings\n2. Configure production database (PostgreSQL)\n3. Set up Redis for caching\n4. Configure static/media file serving\n5. Set up SSL certificate\n6. Deploy to platforms like Heroku, AWS, or DigitalOcean\n\n### Frontend Deployment\n\n1. **Build production app**\n\n   ```bash\n   npm run build\n   ```\n\n2. **Deploy to Expo Application Services (EAS)**\n\n   ```bash\n   npx eas build --platform ios\n   npx eas build --platform android\n   ```\n\n3. **Submit to app stores**\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n### Development Guidelines\n\n- Follow PEP 8 for Python code\n- Use TypeScript for frontend code\n- Write meaningful commit messages\n- Add tests for new features\n- Update documentation\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 👥 Authors\n\n- **Lusan Sapkota** - *Initial work* - [Lusan-sapkota](https://github.com/Lusan-sapkota)\n- **Portfolio** - [Lusan Sapkota](https://lusansapkota.com.np)\n\n## 🙏 Acknowledgments\n\n- Django community for the excellent framework\n- React Native community for the mobile framework\n- All contributors and supporters\n\n## 📞 Support\n\nFor support, email lusansapkota@example.com or create an issue in the repository.\n\n---\n\n## Happy coding! 🎉\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flusan-sapkota%2Fghosttalk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flusan-sapkota%2Fghosttalk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flusan-sapkota%2Fghosttalk/lists"}