Selify is a platform designed to help users declutter their lives by selling unused items and items they don't need anymore.
- User Authentication: Users can sign up, log in, and manage their accounts.
- Product Listings: Users can create, update, and delete product listings with images and descriptions.
- Categories: Browse and filter products by categories.
- Messaging: Send and receive messages between users for negotiations or inquiries in Realtime
- Push Notifications: Receive real-time notifications about new messages, product updates, and more.
- Frontend: Expo (React Native) - Cross-platform mobile app development.
- Backend: Node.js, Express - Robust backend API handling user authentication, product listings, and messaging.
- Database: MongoDB - NoSQL database for storing user profiles, products, and messages.
- Authentication: JWT (JSON Web Tokens) - Secure user authentication.
- File Uploads: Cloudinary - Image storage for product listings.
- Real-time Communication: Socket.IO - For chat and message notifications.
- Push Notifications: Expo Push Notifications - For real-time alerts to users.
The Selify app is structured around the following key components:
-
Frontend (Mobile App): Developed with Expo and React Native, allowing users to interact with the marketplace. The mobile app supports cross-platform development, making it available on both iOS and Android.
- Screens: The app includes various screens like the login screen, product listing, user profile, and messaging.
- Navigation: The app uses React Navigation to handle navigation between different screens, such as product pages and user profile.
-
Backend (API): The backend is built with Node.js and Express and MongoDB, handling requests related to authentication, product listings, messaging, and more.
- RESTful API: The backend exposes a set of API endpoints for managing products, users, and messages.
- Database: MongoDB is used to store user data, product information, and messages.
- Authentication: JWT tokens are used to securely authenticate users and manage session states.
-
Real-time Communication: Socket.IO is used for real-time messaging, enabling users to send and receive messages instantly.
-
Cloud Storage: Cloudinary is integrated for file uploads, allowing users to upload images of products for their listings.
- User Authentication: New users can register with their email and password, while returning users can log in. JWT tokens are used to authenticate users.
- Product Listings: Once logged in, users can browse products listed by others, filter them by category, and create their own listings with images and descriptions.
- Messaging: Users can send and receive messages directly within the app to discuss the products, negotiate prices, or ask for more details.
- Push Notifications: Users receive notifications about new messages, product updates, and other relevant events.
To run the Selify app locally:
git clone https://github.com/David-mwas/selify.git