<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Mia</title>
    <description>The latest articles on Forem by Mia (@mia01).</description>
    <link>https://forem.com/mia01</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F208898%2Fe782cad0-68d1-4634-96cd-bd8eb4aa989c.png</url>
      <title>Forem: Mia</title>
      <link>https://forem.com/mia01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/mia01"/>
    <language>en</language>
    <item>
      <title>eVent! a task and event management app for family and friends</title>
      <dc:creator>Mia</dc:creator>
      <pubDate>Thu, 30 Apr 2020 03:35:36 +0000</pubDate>
      <link>https://forem.com/mia01/event-a-task-and-event-management-app-for-family-and-friends-8j7</link>
      <guid>https://forem.com/mia01/event-a-task-and-event-management-app-for-family-and-friends-8j7</guid>
      <description>&lt;p&gt;I've been a member of dev.to for some time now. Incidentally, this is my first post and I'm excited to present to you my submission for the Dev.to Twilio Hackathon: eVent 🥁&lt;/p&gt;

&lt;p&gt;An event and task management app for family and friends!🎉🧓🎂👨‍👨‍👧‍👦&lt;/p&gt;

&lt;p&gt;Imagine if you could assign tasks to your kids or family members. Let them know about important events in your life and remind them so they never miss it! 😁 &lt;/p&gt;

&lt;p&gt;This is what the eVent app is all about. For the hackathon submission, I've created a small MVP which does the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Securely registers new users - I use .net core identity for this&lt;/li&gt;
&lt;li&gt;Verify user phone number using Twillio SMS API&lt;/li&gt;
&lt;li&gt;Create tasks and events for the user&lt;/li&gt;
&lt;li&gt;A user can send and accept friend invites&lt;/li&gt;
&lt;li&gt;Send text reminders to the task assignee when a task is due using Twilio.&lt;/li&gt;
&lt;li&gt;Send out invites or reminders to friends about your events using Twilio&lt;/li&gt;
&lt;li&gt;See your tasks and events as well as your friend events on your calendar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The main technologies I used were&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Angular and Angular CLI for the frontend&lt;/li&gt;
&lt;li&gt;.net core for the backend&lt;/li&gt;
&lt;li&gt;MySQL for the DB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to this I used some interesting frameworks and technologies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;.net core Identity to register and manage user authentication and authorization&lt;/li&gt;
&lt;li&gt;Dapper for accessing my application-related data&lt;/li&gt;
&lt;li&gt;Docker for provisioning my MySQL DB locally &lt;/li&gt;
&lt;li&gt;For some time I used hangfire for sending out the reminders but eventually replaced it with a .net core hosted service because hangfire didn't play nicely with MySQL :)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to see a live demo of it here it is (published on Azure): &lt;a href="https://eventapplication.azurewebsites.net/" rel="noopener noreferrer"&gt;https://eventapplication.azurewebsites.net/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Otherwise, read on! for a description of some of the main scenarios:&lt;/p&gt;

&lt;h2&gt;
  
  
  Verify Phone number
&lt;/h2&gt;

&lt;p&gt;A part of the user registration is the verification of the user's phone number. I'm using Twilio to send a verification code to the user via sms. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2dhnal50wk5vgafme9h5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2dhnal50wk5vgafme9h5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7vm18ljbvwlr89aka607.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7vm18ljbvwlr89aka607.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpsccy4d05mb4xpsamvvq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpsccy4d05mb4xpsamvvq.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Add a friend
&lt;/h2&gt;

&lt;p&gt;Once you have registered and verified your phone number you can go to the app and start using it. For example, you can search for and add a friend by username. In order for the process to be complete, the friend's user must accept the request.&lt;br&gt;
&lt;strong&gt;Adding a user:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ft3ith9jertubqodbvyli.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ft3ith9jertubqodbvyli.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accepting a user invite:&lt;/strong&gt;&lt;br&gt;
When you receive an invite all you have to do is click accept to become friends. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ft0sa5tjsdr4n5117gafj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ft0sa5tjsdr4n5117gafj.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
Now you can do exciting things like assign tasks and notify them of your events!&lt;/p&gt;

&lt;h2&gt;
  
  
  Assign a task to a friend and set them a reminder
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1ll5os2mp5qcy03yq5rt.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F1ll5os2mp5qcy03yq5rt.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The assigned user will get a friendly text message with a gentle reminder just before the task is due 😆✅:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fapq2bezxz3se3zwuh95g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fapq2bezxz3se3zwuh95g.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create an event and make public to your friends
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyq1on50q5xpl7au4k8aj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyq1on50q5xpl7au4k8aj.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now your friends will get a reminder of this event:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyjtc3wonw3o9jbqo6zfp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fyjtc3wonw3o9jbqo6zfp.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  See your events and your friends' public events on the same calendar
&lt;/h2&gt;

&lt;p&gt;Finally, you can see your events and your friend's public events on your calendar. Never miss an event again!😊&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4xg11w2h5o5r7jw25myi.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4xg11w2h5o5r7jw25myi.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope you enjoyed this project. If you'd like to see the source code for this project you can find it &lt;a href="https://github.com/mia01/eVent" rel="noopener noreferrer"&gt;here&lt;/a&gt;. You'll find information about the project setup as well. Feel free to ask questions, give encouragement/advice/request features, etc. Any interactions are most welcome! &lt;/p&gt;

</description>
      <category>twiliohackathon</category>
      <category>netcore</category>
    </item>
  </channel>
</rss>
