This project helps showcase building a for small apps. This article will cover the following aspects todolist backend Have a SQL based database for persistence (sqlite) Defining the todo and project entities Deploy on cloud (Heroku) Test the new APIs using curl For a while now I have been using Daptin for small apps. It allows you to iterate quickly and create a backand for an app without too much work. It also seems like a perfect jumping off for a series of tutorials where we will be building a “Todo list” application. The setup First thing you’ll want to do is to signup on (free instance is enough for testing this out), since . Then follow this link to . heroku we will deploy our backend on heroku deploy an instance of daptin on heroku _Deploy Daptin_dashboard.heroku.com Heroku Choose a name for this app Choose an app name for this instance (I have chosen todolist-tutorial). After you click ‘deploy app’, it will take a couple of minutes to get the instance running. Deploying app can take 3–5 minutes Once the deployment is complete, you will get the link to the instance. Click “View” to go to the newly deployed instance. “View” will take us to the newly deployed instance Create an account using Sign Up, Then Sign In Once the instance is ready, we will create a user account on daptin. Create an account using Sign Up, then Sign In. Define Schema We need to . Lets take this opportunity to create a slightly more complex todo-list implementation. We will have “Project” which will have a name and “Todo” will belong to one of these projects. define our todo entity We will (you can use JSON also) and upload it to daptin to get our APIs create a YAML file to define the schema Todo will have a “title”, a “description” and a “schedule_date”. Project will have a “name”. We also need to define the relation between the todo and the project entity. Over all, it will look something as follows: You can find the complete file I have used . Save this file so that we can upload it to daptin. here Select Upload Schema and choose the previously created file Upload this will take another 15–20 seconds. On completion, our APIs are ready. Testing the APIs Lets try them out. We will use curl to call the API from terminal: curl “ " https://todolist-tutorial.herokuapp.com/api/todo Response {“links”: {“current_page”: 1,“from”: 0,“last_page”: 0,“last_page_url”: “//api/todo?page[number]=0”,“next_page_url”: “//api/todo?page[number]=2”,“per_page”: 10,“to”: 10,“total”: 0},“data”: []} Since we have not created any todo yet, we get an empty array in the “data” key. Lets create a new todo curl “ " — data ‘{“data”: { “type”: “todo”, “attributes”: {“title”: “get this done”, “schedule”: “2017–10–19”}}}’ https://todolist-tutorial.herokuapp.com/api/todo Response: {“errors”: [{“status”: “500”,“title”: “Unauthorized”}]} Whoops, since we call the create API without an Auth token, we are not allowed to do this. Lets sign in using terminal to get a new token. curl “ " — data ‘{“attributes”: {“email”: “ ”, “password”: “<password>”}}’ https://todolist-tutorial.herokuapp.com/action/user/signin tester@gmail.com Token in the sign in response: [{“ResponseType”: “client.store.set”,“Attributes”: {“key”: “token”,“value”: “ ”}}] eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6InRlc3RlckBnbWFpbC5jb20iLCJleHAiOjE1MDg0MDA4OTcsImlhdCI6IjIwMTctMTAtMTlUMDc6MTQ6NTcuNjUxMjY1NTU5WiIsImlzcyI6ImRhcHRpbiIsImp0aSI6ImI1ZjJlMDA0LTRlMGMtNGMwZi05MDc3LWZmM2NmNThmNmI1OSIsIm5hbWUiOiJ0ZXN0ZXIiLCJuYmYiOjE1MDgzOTcyOTcsInBpY3R1cmUiOiJodHRwczovL3d3dy5ncmF2YXRhci5jb20vYXZhdGFyLzhjM2ZlMWFkMjVlNmQ1ZjQ3NTEyZWE3MzY1NDE5OTY2XHUwMDI2ZD1tb25zdGVyaWQifQ.gM8SdgCpr_iCsI0zGN0nCnKTYiDhkwXZanWrYD1fMRg We will use this token to create a todo now. We send the token in the “Authorization” Header. The token is a Oauth2 token. We can now use the first api to get the list of todos. We will also need to use the Authorization token. We can also allow guests to create and fetch these todos. But lets cover that in next post. Couple of ending notes: The database being used here is SQLite. We can also use MySQL or Postgresql. Again, we will go through that in another post Heroku shuts down free instances after 30 mins of idleness. So all changes will be lost. The paid instance does it have this issue and costs about $5 per month. The deployed instance will allow guests to sign up and sign in. Click “Become Admin” on the daptin dashboard to close registration. You can enable this later.