The build is finished. Here is all of it.
The app, the panel, the server, the code, the signing keys and the store paperwork. This page is the index. The files and the logins come in a separate folder, because logins do not belong on a web page.
What is running now
The server
The API and the database sit behind all of the above at api.thewasla.com. You never open it directly. It is listed here because it is a real thing you now own, and because when something breaks it is the first thing to check.
What you are being handed
There is one file you must never lose.
The signing key is how Google Play knows an update really came from you. If it is lost, the app can never be updated again. Not difficult, not expensive, not possible. You would have to publish a new app on a new link and every install would be gone.
Put a copy somewhere that is not your laptop. A password manager, a safe, a second drive. Its password belongs in the same place. The same goes for the two developer accounts themselves. Whoever holds those holds the app.
What is left for you
Five things, and not one of them is code.
-
Change the panel password
Two minutes, and it is the only thing on this list that is urgent. The password you have been using is a demo one from the start of the project, and it was printed on the progress page so you could try the panel before there was anything real in it. There are real bookings in there now. It has come off that page, and it needs replacing with something only you know. The current one is in the folder.
-
Open the two developer accounts
Google Play is $25 once, Apple is $99 a year, and both have to be in the salon's name because both stores tie an app to the account that publishes it. Start this first. The waiting is all here, not in the app. Apple can take over a week to verify a business.
-
Put your real salon in
The app is running on sample services, sample prices and a sample address. You can change every bit of that from the panel yourself, or send it to me. Do not submit to either store until it is done. Sample data is what an unfinished app looks like to a reviewer, and Apple reject it.
-
Send me a business name and a support email
They go on the privacy policy, the store listing and Google's data form, and all three have to say the same thing. The policy is live with my details on it as a placeholder until you send yours.
-
Decide where the server lives
The API, the database and the three websites are on my accounts today and cost about $3 a month. Nothing breaks either way, but it should end up somewhere you control. Each piece moves on its own and none of it needs the app rebuilt. The instructions are in the folder.
What is already handled
These are the ones that get apps rejected. They are done, so there is nothing here for you to do.
- Delete account, inside the appApple reject any app with a sign-in that cannot do this
- A deletion page for people without the appGoogle ask for this separately
- A privacy policy that matches the appArabic and English
- The real icon at every sizeBoth stores reject a placeholder one
- Arabic and English declaredSo it lists under both
- Notification permission asked at the right momentWhen the customer turns them on, not on first open
- Export compliance answered in the appSo you are not asked on every upload
- Portrait, phone onlyWhich is what it was designed for
- Signed and ready to uploadThe Play file is built and in the folder
- Every form answer written outCopy and paste, both stores
What it costs to run
Publishing
The full route for both stores, written for you to do it yourself, is on its own page. Android you can do from any computer. The iPhone side needs a Mac, which is Apple's rule and not a choice in how this was built, and the page walks through setting one up from nothing: Xcode, the code, signing, the upload, and TestFlight.
If something breaks
| What you see | Which piece | What it means |
|---|---|---|
| The app cannot reach the salon, but the panel loads | The server | Open api.thewasla.com/api/s/style-hub. Anything other than a page of text means the server is down. |
| The panel will not load at all | Website hosting | Your data is untouched. Nothing is lost. |
| The app looks wrong, but bookings still work | The app build | Fixed by rebuilding and resubmitting. |
| Sign-in works for you and fails for customers | Signing fingerprints | This one is expected once, right after the first Play upload. The fix is two lines and it is written out in the publishing guide. |
Your bookings are in one place
Everything real lives in a single database that nothing else touches. A website going down cannot lose a booking, and neither can a bad app build.