This is a cross-platform TODO application built with:
- Frontend: Flutter (Dart) for mobile and web interfaces
- Backend: Express.js (Node.js) for the API server
- Database: SQLite
The app allows users to create, read, update, and delete tasks with additional features like task creation, due dates, and completion tracking.
- Decent Material Design UI
- Create, edit, and delete tasks
- Mark tasks as complete
- Ability to add Due dates
- RESTful API endpoints
- User authentication (JWT)
- CRUD operations for tasks
- Data validation
- Database integration
- Error handling
- Flutter SDK (latest stable version)
- Dart SDK
- Node.js
- npm or yarn
- SQLite3
- Clone the repository:
git clone https://github.com/yaboywf/Todo-App.git
cd todo-app/flutter_app
- Install dependencies:
flutter pub get
- Run the app:
flutter run
- Navigate to the backend directory:
cd /path/to/directory
- Install dependencies:
npm install
OR
yarn install
- Start the server:
npm server.js
- Replace ALL existing IPv4 to the desired IP Address
- Replace ALL existing IPv4 to the desired IP Address
- Add your own secret key
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/authenticate | Login user |
| GET | /api/check_session | Check whether the current user is authenticated |
| GET | /api/get_user_data | Get user information |
| POST | /api/logout | Log out the current user |
| PUT | /api/update_user_data/username | Updates the user's username |
| PUT | /api/update_user_data/image | Update the user's profile picture |
| GET | /api/get_tasks | Get all tasks |
| POST | /api/tasks/create | Create a new task |
| DELETE | /api/tasks/delete | Delete a task |
| PUT | /api/tasks/update/completed | Mark a task as completed / not completed |
| PUT | /api/tasks/update/details | Update a task's details like task name or due date |
| POST | /api/create_account | Create a new account |
| DELETE | /api/delete_delete | Delete an existing account |
todo-app/ │ ├── .dart_tool ├── .idea ├── .android ├── assets | ├── login_bg.jpg | ├── logo.png │ └── profile_bg.webp ├── build ├── lib # Flutter frontend │ ├── account.dart # Creating an account page │ ├── functions.dart # General functions used in the app | ├── login.dart # Login page │ ├── profile.dart # Profile page │ ├── tasks.dart # Tasks page │ └── main.dart # Main entry into app │ ├── node_modules ├── .env ├── .flutter-plugins ├── .flutter-plugins-dependencies ├── .gitignore ├── .metadata ├── analysis_options.yaml ├── database.db # SQLite database used in the app ├── encryption.js # Handle encryption and decryption of data ├── package.json ├── package-lock.json ├── pubspec.lock ├── pubspec.yaml ├── server.js # Express.js backend └── todo-_app.imi
Dylan Yeo - yaboywf