Hello team,
Sharing the implementation status completed in today’s session for release management and v1.000 product scope alignment.
1) APK release management (Admin + API)
- Created a dedicated admin section to upload Android release APK files with historical tracking.
- Each uploaded release is recorded with version, upload timestamp, and uploader user identity.
- Versioning now auto-increments by
0.001 per upload, starting from 1.000.
- Release list provides direct download links for previously uploaded APKs.
- Added visual upload progress in admin (percentage, transferred size, and upload speed in MB/s).
2) Platform routes and navigation changes
- Introduced a dedicated public releases page under
/releases and release API list endpoint under /api/v1/releases.
- Created
/planes as a unified entrypoint for planning docs.
- Moved main menu emphasis from separate backend/frontend plan cards to a single Planes section.
- Used the freed main-menu space to expose staging APK releases as a first-class section.
3) Legal and settings flow updates
- Added Terms and Conditions in Spanish and English.
- Settings in Flutter now opens Terms link dynamically based on currently selected app language.
4) Mobile app scope now enabled for v1.000
- Enabled create flows in app (no longer placeholder): users can create projects and news directly from Flutter.
- Near flow remains active and continues using user GPS + project geolocation.
- Social login remains intentionally out of current release scope as planned.
5) Security and account operations
- Added authenticated change-password endpoint in API and integrated change-password screen in Flutter.
- Improved real client IP capture behind proxy for login event records.
- Added mail configuration panel in admin for SMTP/POP3 setup to support security and two-step related email workflows.
6) Current status
- Core release pipeline features are implemented and pushed to staging branches.
- Next action is deployment sync + migration execution in staging to activate new routes/models.
Regards,
Robert Rascheri