Clother is an Android client-server application for swapping unused clothes written in Python and Kotlin.
Demonstration.mov
- Authentication
- Registration with email confirmation
- Login
- Password recovery
- Paginated list of offers
- Search by text query or category with the following filters: size, location
- Creation of your own offer with up to 5 images, category, title, description, size and location
- Realtime person-to-person chat with push notifications support
- Offers and messages caching
Follow the steps below to run the application.
- Install Docker
- Obtain Google Maps API key as described here
- Create Firebase Cloud Messaging project as described here and obtain API key
- Clone the repository and navigate to
Backenddirectory - Create
instancefolder andconfig.pyfile inside this folder. This folder should be added to.gitignorebecause it will contain your sensitive data - Open
config.pyfile and specify the following parameters:SECRET_KEY,JWT_SECRET_KEY,MAIL_SERVER,MAIL_PORT,MAIL_USERNAME,MAIL_PASSWORD,MAIL_DEFAULT_SENDER,MAIL_USE_TLS,MAIL_USE_SSL,FCM_API_KEY(your Firebase Cloud Messaging API key) - Open Docker Desktop and wait for the engine to start
- Navigate back to
Backenddirectory, open command line here and executedocker-compose up -d --build. After containers start, visithttp://localhost:5000/to check that everything is fine. You should get 404 HTTP error - Execute
docker-compose exec api bashto openbashinside the Docker container. Then execute./setup.shto create database tables and populate them. If you don't want to populate some tables, just remove the corresponding commands from thesetup.sh, e.g.,flask admin mock-messages - Now open
Clientfolder as Android Studio project - Add the following line to the global
gradle.propertiesfile:GOOGLE_MAPS_API_KEY="%YOUR_API_KEY%". - If you are going to run this app on your physical device, go to
Client/app/src/main/java/com/t3ddyss/clother/utilities/Constants.ktand changeBASE_URL_DEVICEto the IP address of your machine - Register the app with Firebase as described here. You will need to replace
Client/app/google-services.jsonwith yourgoogle-services.jsonfile - At this point, you should be able to successfully build, run and use the application
Implement deep linking for push notificationsSupport images in chatMigrate to PostgreSQL and add advanced database triggersSupport different timezones
Distributed under the MIT License. See LICENSE for more information.
Telegram: @t3ddys
Github repository: https://github.com/t3ddyss/Clother