Full Stack Development: A To Do App with React Native, Node.js, and MySQL
Beto, May 14, 2023 · 54,124 views
In this video, I build a full stack to-do app to create, delete, mark complete, and share tasks between users. The frontend uses React Native with Expo, the backend uses Node.js with Express, and MySQL stores the data.
This is ideal if you want to connect a mobile app to a server and database, handle users, and model shared task relationships. I also explain why I chose these technologies and how the system works on iOS and Android from one codebase.
What's inside
- Introduction and to-do app demo
- Full stack architecture: frontend, backend, and database
- Technology choices: React Native, Node.js, Express, and MySQL
- MySQL database creation and management
- Node.js and Express server implementation
- Core features: create, delete, complete, and share tasks
- Expo for fast React Native development
- Sharing tasks between users and synchronization
Introduction and to-do app demo
I start with the app running: a task list where you mark items complete, create tasks with emojis, and share them with other users. Icons show who each task is shared with. Long-press a row to delete with confirmation.
The demo shows collaboration and real-time sync, not just a local list.
Full stack architecture: frontend, backend, and database
The mobile app (frontend) talks to a server (backend) that handles logic and requests. The server connects to MySQL for users, tasks, and sharing relationships.
The server protects the database and centralizes heavy logic. The client consumes the API for display and updates. That improves performance and security.
Technology choices: React Native, Node.js, Express, and MySQL
React Native gives one codebase for iOS and Android instead of two native apps. Expo speeds up development.
Node.js with Express builds a straightforward REST API. MySQL is relational, which fits users and shared tasks.
MySQL database creation and management
The "to do app" database has tables for users, tasks, and sharing. The schema links tasks to owners and supports sharing via relations.
SQL queries verify users and stored data, showing how the backend reads and writes the database.
Node.js and Express server implementation
The Express server handles create, update, delete, and share requests. It validates users, updates task state, and syncs changes.
Centralized logic protects the database and scales more easily.
Core features: create, delete, complete, and share tasks
Create tasks with text and emojis, toggle completion, delete with confirmation, and share by entering another user's email.
Sharing updates the database and syncs the view for everyone involved, with icons showing collaborators.
Expo for fast React Native development
Expo simplifies setup and lets you test quickly on iOS and Android. Great for prototypes and fast iteration.
You can move to React Native CLI later if you need advanced native modules.
Sharing tasks between users and synchronization
Share tasks by email. The backend updates relationships and the app shows shared users on each task.
Completion changes sync for everyone with access, keeping collaboration accurate.
Resources

CourseReact Native course
Full React Native development from fundamentals through shipping mobile apps.

Premium resourcePro Membership
Exclusive content, support, and advanced resources for developers.
Like this article? Get the rest of the library plus weekly React Native tips. Free.