Skip to content

elselawi/apexo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

742 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Apexo

Apexo is application intended for simple and easy management of dental clinics. Its free and open source. It supports patient management, appointment management, photo attachments, multiple doctors, multiple users, works offline, synchronizes through multiple devices, multi-lingual, secure, supports backups.

Website - Demo - Download - Documentation

The following document is technical documentation for the Apexo project. If you are a user, or would like to use the application please visit the Apexo website, or read through the manual.md.

Contributing

All contribution are welcome, whether as a PR or issue. All I ask is to adhere to Github community standards.

Members contributed

Technology stack

This project uses Dart and Flutter to be able to run on multiple platforms from a single codebase. The design language is Microsoft FluentUI, as implemented thankfully by Bruno D'Luka.

The backend of this application should be Pocketbase.

I'm saying "should" because I leave it up to the users to host their own backend. However, a cleanly installed pocketbase with a super user credentials would be enough to run this application since the application creates all the required collections and values on first login.

Check the manual.md for how to install PocketBase.

In previous versions of apexo, in an old github account of mine that I lost access to, and abandoned since then, the tech-stack was quite different, Typescript/React to create a single page PWA and CouchDB as backend. However, with usage I have found that the web platform, although great for other application, was limiting for this application. So in summer 2024 I started a whole re-write of apexo and published it to my new github account.

  • Can you migrate from that application to this one?
    • No you can't, I'm sorry. This is a new release, the versioning isn't even a continuation from the old one.
    • However, I plan to support this version so that it will always be backwards compatible.

Available platforms

  • Windows: All features should/are tested and works (available on Microsoft Store).
  • Android: All features should/are tested and works (available on Google Play).
  • Web: All features should/are tested and works (available on web.apexo.app).
  • iOS: All features should/are tested and works (available on App Store).
  • MacOS: All features should/are tested and works (available to Download).

Testing

Building & Distribution

  • For the web:

    • Build with the command: flutter build web --release
    • deploy to wrangler: wrangler pages deploy build/web --project-name=apexo-web
  • For android:

  • For MacOS

    • build with: shorebird release --platforms macos -- --release
    • then run: cd macos && pod install
    • then open with xcode this should open Runner.xcworkspace not Runner.xcodeproj
    • then go to product -> archive
    • after build finishes it will open a new window -> Distribute -> direct distribute (for notarization)
    • wait for the notification
    • export it (from the same window of "archives")
    • staple: xcrun stapler staple apexo.app
    • make sure it was successful: spctl --assess --verbose apexo.app
    • create a dmg: create-dmg --volname "Apexo Installer" --window-pos 200 120 --window-size 800 400 --icon-size 100 --icon "Apexo.app" 200 190 --hide-extension "Apexo.app" --app-drop-link 600 185 "apexo-installer.dmg" "apexo.app"
    • Notarize DMG: xcrun notarytool submit apexo-installer.dmg --apple-id "ali.a.saleem@outlook.com" --team-id "8T5VB3M83P" --password "APP_SPECIFIC_PASSWORD" --wait (replace app specific password with the app specific password from macos directory).
    • staple dmg: xcrun stapler staple apexo-installer.dmg
    • Upload it: wrangler r2 object put apexo-releases/releases/0.10.6/Apexo-Installer.dmg --file=Apexo-Installer.dmg --remote
    • Update the metadata.json and upload it: wrangler r2 object put apexo-releases/metadata.json --file=metadata.json --remote
  • For windows: (On a windows machine)

    • build with shorebird release --platforms windows
    • build msix: dart run msix:create --store
    • upload to ms store through microsoft partner
  • For iOS:

    • build with flutter build ipa --release --export-method app-store
    • upload with transporter (build/ios/ipa) and deliver
    • continue on appstoreconnect https://appstoreconnect.apple.com/apps/6767690393/distribution/ios/version/inflight

Support

Currently I'm not accepting any financial support for the development of this project. I'm developing it on my free time and using it in my own clinic.

If you insist to help:

  • You can report issues or bugs.
  • Submit PR request to improve the project.
  • Pray for peace and better future in the middle east.

Built with ❤️ in Mosul, Iraq.

License

GNU General Public License v3.0.

About

Dental Clinic Management system

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages