A Flutter-based document archiving and user management application. This application provides a comprehensive interface for managing documents, assigning access rights, and handling user authentication through a REST API.
Backend Repository: The REST API backend for this project is built with Spring Boot. You can find its source code here: hakstudio/archiveapp
- User Authentication: Secure login functionality (
LoginView). - Document Management:
- List available documents (
ListDocumentsView). - Add or edit existing documents (
EditDocumentView). - Supports file picking using the
file_pickerpackage.
- List available documents (
- User Management:
- List existing users (
ListUsersView). - Add or edit user details (
EditUserView). - Manage access authentication and authorizations (
EditAccessAuth).
- List existing users (
- Archive Viewer: View archived contents (
ArchiveView). - RESTful API Integration: Connects to a backend service for seamless data synchronization using HTTP requests (GET, POST, PUT, DELETE).
- Flutter SDK (>=3.1.2 <4.0.0)
http: For making network requests to the REST API.file_picker: For picking local files from the device.intl: For internationalization and date formatting.cupertino_icons: For iOS style icons.
Follow these steps to set up and run the application on your local machine.
- Flutter SDK installed on your system.
- An IDE such as VS Code or Android Studio with Flutter/Dart plugins configured.
- A running REST API backend (update the API endpoints in
lib/service/rest_api.dartas required).
-
Clone the repository:
git clone <repository-url> cd archive_app
-
Install the necessary dependencies:
flutter pub get
-
Run the application:
flutter run
lib/main.dart: Entry point of the Flutter application.lib/view/: UI screens (Login, Archives, Document/User Management).lib/model/: Data models for the business logic.lib/viewmodel/: State management and business logic handlers.lib/service/: Network layers and REST API handlers (rest_api.dart).
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.