Sunday 28 November 2010

Week-12-CRM

28 Nov 2010
Total 6 hours
  1. <Reminder testing> 6 hours I thought this function is working well, but when I started testing, many bugs are there. I don't know the reason, degrade or my misunderstanding... Anyway I have to fix and start testing, so first I need to unit testing. Finally I have finished my part.

27 Nov 2010
Total 6 hours
  1. <Manage user Testing> 6 hours I have tested my manage user function. This function is affected by adding client role. So I need to fix bugs. And this is very important part for the security. That's why I need to test many patterns.


26 Nov 2010
Total 7 hours
  1. <Set up IIS> 7 hours I have set up IIS for the final presentation. In the final presentation, we have to upload the application to the internal server. I can install IIS however some errors are shown, I don't know I can finish by next Monday or not.

25 Nov 2010
Total 6 hours
  1. <Login Testing> 6 hours I have done login testing. But I realized I forgot to create recovery password and change password function. I created those function and tested also. ASP.net recovery password and change password are not so perfect. I needed to modify something.
 ASP.net membership password recovery
If you want to use gmail for password recovery mail, you need to write following.
- web.config
<mailsettings>
   <smtp deliverymethod="Network" from="riekosgmt@gmail.com">
    <network defaultcredentials="false" host="smtp.gmail.com" password="######" port="587" username="username">
   </network>
  </smtp>
</mailsettings>
- Forgotpassword.aspx.cs
protected void prForgotPassword_SendingMail(object sender, MailMessageEventArgs e)
    {
        MailMessage mm = new MailMessage();


        mm.From = e.Message.From;

        mm.Subject = e.Message.Subject.ToString();

        mm.To.Add(e.Message.To[0]);

        mm.Body = e.Message.Body;
        SmtpClient smtp = new SmtpClient();
        smtp.EnableSsl = true;

        smtp.Send(mm);
        e.Cancel = true;    
    
    }

25 Nov 2010
Total 6 hours
  1. <Login Testing> 6 hours I have done login testing. But I realized I forgot to create recovery password and change password function. I created those function and tested also. ASP.net recovery password and change password are not so perfect. I needed to modify something.

24 Nov 2010
Total 6 hours
  1. <Create Test document> 3 hours I wrote test plan documentation and Test case example documentation. I wondered the sample test document is not such convenient format. So I asked our teacher we can modify format or not. He allowed me to modify the format. Therefore, I created test example format and we will start testing. 
  2. <Client Login function> 3 hours I have done client login function. I use ASP.net membership function. First, I thought I just add on new role for the client. But this adding role affects whole managing user function. I should have thought deeply designing role.

    23 Nov 2010
    Total 5 hours
    1. <Marge source code> 3 hour  Today we have a presentation. However, I need to merge source code again. That's why I cannot spend the time for preparing a presentation. 
    2. <Presentation> 2 hours We made a semi-final presentation. We have a lot of functions, therefore, we explained one by one. And also this software is a little complex, so I don't know they can understand or not. I hope they understand our application.

     22 Nov 2010
    Total 6 hours
    1. <Manage User> 3 hours I finalized manage user function. This time it is not so perfect, but we don't have enough time and we want to graduate this year, so I focused on the normal flow.
    2. <Marge source code> 3 hour  We merged source code for the presentation. We are using SVN, but this time it didn't work. Our some parts of source code were downgraded. We didn't have enough backup, so we need to check whole source code. The most important is to take back up often. 

    Sunday 21 November 2010

    Week-11-CRM

    21 Nov 2010
    Total 5 hours
    1. <Manage user> 5 hours I finished assign client function. I thought it was easy, however when I consider deeply, it is difficult, because some people have already assigned clients and others don't have. If user has already assigned particular client, I need to update. If not, I will insert. Therefore, lots of conditions are there. 


    20 Nov 2010
    Total 5 hours
    1. <Document Testing Plan> 5 hours Today I wrote testing plan documentation. In the academic purpose, we need to write many documentations. Honestly, we haven't touched the documentations, so many documentations are not started yet. Now we have to start documentations also. Testing plan documentation is not so difficult, however I may misunderstand some parts. Therefore, I need to check my understanding is correct or not.  

    19 Nov 2010
    Total 4 hours
    1. <Manage User> 3 hours I created search user, update user, activate user and deactivate user function. I have to do create user and assign clients functions. I hope I will finish this week. But these days many my class mates ask fix their bugs, so I am busy.
    2. <Group meeting> 1 hour  We make a presentation our application to the our supervisor. Actually, we have a lot of functionality manage client, manage contact history, manage schedule, reminder, invoice, payment and manage users. Also we have client function, so it is rich application:) 


    18 Nov 2010
    Total 7 hours

    1.  <Create Reminder> 5 hours I have done reminder function. ASP.net uses javascript meny part, which is auto generated by the ASP.net. So sometimes this javascript conflict each other. If I use the File Upload control inside update panel, the file data is automaticaly gone. Maybe it is already clear bug, but I didn't know that. And that kinds of conflicts are happen many times, that's why I took more time than I expected.
    2. <Manage User> 2 hours Now I can start manage user function, But I used asp.net membership control, which is generated own about 10 tables. I needs to research how to connect my application to the membership control. 


    16 Nov 2010
    Total 7 hours

    1. <Create Reminder> 5 hours Still I continue to create reminder function. I have done attach document function. But I regret this function, because reminder allows user to attach document up to 5 documents. However, it became very complex, I think three is enough, but if I change them, it also needs to spend time. 
    2. <Presentation> 2 hours Today we joined the presentation, I thought we can make a presentation, but team reader and supervisor don't want to show this application at the moment. So we postponed our presentation to the next week. 

    Send Email Class
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Net.Mail;
    using System.Collections;
    
    
    /// 
    /// Summary description for SendEmail
    /// 
    public class SendEmail
    {
        public string Email1{set;get;}
        public string Email2 { set; get; }
        public string Subject{set; get;}
        public string Body { set; get; }
        public string AttachementPath { set; get; }
    
    
    
        public void SendEmailmethod(string email, string subject, string body)
        {
            string To = email;
            string From = "riekosgmt@gmail.com";
            MailMessage message = new MailMessage(From, To);
            message.Subject = subject;
            message.Body = body;
    
            // Add a carbon copy admin
            MailAddress copy = new MailAddress("riekosgmt@gmail.com");
            message.CC.Add(copy);
    
            SmtpClient Client = new SmtpClient();
            Client.Host = "smtp.gmail.com";
            Client.Port = 587;
            Client.Credentials = new System.Net.NetworkCredential("riekosgmt", "testcrm111");
            Client.EnableSsl = true;
            Client.Send(message);
        }
    
    
        public void SendEmailwithAttach(string email, string subject, string body, string[] attachementpath)
        {
            string To = email;
            string From = "riekosgmt@gmail.com";
            MailMessage message = new MailMessage(From, To);
            message.Subject = subject;
            message.Body = body;
    
            // Add a carbon copy admin
            MailAddress copy = new MailAddress("riekosgmt@gmail.com");
            message.CC.Add(copy);
            foreach (string file in attachementpath)
            {
                Attachment attachFile = new Attachment(file);
                message.Attachments.Add(attachFile);
            }
            SmtpClient Client = new SmtpClient();
            Client.Host = "smtp.gmail.com";
            Client.Port = 587;
            Client.Credentials = new System.Net.NetworkCredential("riekosgmt", "testcrm111");
            Client.EnableSsl = true;
            Client.Send(message);
        }
     public SendEmail()
     {
      //
      // TODO: Add constructor logic here
      //
     }
    
    }
    

    15 Nov 2010
    Total 7 hours

    1. <Create Reminder> 5 hours I created reminder function. I couldn't finish search reminder function, so I have to continue to do.But my concern is our team member's part. I hope we will finish by this week.
    2. <Client meeting> 2 hours Today, we discussed with the client. Most we talked about Invoice and Payment function. Finally, we got his idea clearly. So, now we will finalize it.

    Sunday 14 November 2010

    Week-10-CRM

    14 Nov 2010
    Total 6 hours 
    1. <Create Reminder> 6 hours I created reminder function 70%. Actually, I want to finish today, but I need to do retrieve Email also, so I will start retrieve email. However, before I start, I have to merge source code to other team members' source. We use SVN, so it will be easy. Honestly, I was impressed this software. I really understood the reason, which many people have already used!  

    13 Nov 2010
    Total 4 hours 
    1. <Create Reminder> 4 hours Now I started coding for reminder function, however it will be longer than I expected. Ummmm.... I want to finish by end of this week, but I try to use radio button inside gridview. When I use auto generate function, it will work. But if I use radio button in the gridview binded data from behind C#, it won't work. I didn't know that, so until I realized the reason,  I researched many pages. That's why I don't like ASP.net.
     12 Nov 2010
    Total 6 hours 
    1. <Create Reminder> 6 hours Finally, I could start my part, which is reminder function. I need to start from first, because table layout was completely changed, so I'm not sure how long I will take to create reminder function. But I want to finish it as much as first.

    11 Nov 2010
    Total 6 hours 
    1. <Research for Create Cookie> 6 hours I research for creating cookie, because when user logs in this system, we want to pass the information to this user, and we will always use this information during logged in. First, I want to put in the information into the authentication cookie, however, they cannot have extra information, so I have to create original cookie. The coding is following, I need to encode this cookie. But this coding hasn't encoded yet. 

    int AccountantID = GetAccountantID(LoginHome.UserName);
     
                  // Get cookie from the current request.
                  HttpCookie cookie = Request.Cookies["Acc"];
    
                  // Check if cookie exists in the current request.
                  if (cookie != null)
                  {
                      HttpCookie myCookie = new HttpCookie("Acc");
                      myCookie.Expires = DateTime.Now.AddDays(-1d);
                      Response.Cookies.Add(myCookie);
    
                  }
                 
                      HttpCookie cookieAcc = new HttpCookie("Acc");
                      cookieAcc.Expires = DateTime.Now.AddDays(1);
                      cookieAcc.Value = Convert.ToString(AccountantID);
    
                      Response.Cookies.Add(cookieAcc);
    
    
    10 Nov 2010
    Total 6 hours 
    1. <Research for ASP.net Membership> 6 hours Finally, I could use membership control. The solution is that we have to use formauthenticationticket class, such as following. And I can control to access website using roles.

    if (Membership.ValidateUser(username, password))
        {
          string userData = "ApplicationSpecific data for this user.";
    
          FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
            username,
            DateTime.Now,
            DateTime.Now.AddMinutes(30),
            isPersistent,
            userData,
            FormsAuthentication.FormsCookiePath);
    
          // Encrypt the ticket.
          string encTicket = FormsAuthentication.Encrypt(ticket);
    
          // Create the cookie.
          Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
    
          // Redirect back to original URL.
          Response.Redirect(FormsAuthentication.GetRedirectUrl(username, isPersistent));
        }
        else
        {
          Msg.Text = "Login failed. Please check your user name and password and try again.";
        }
    

    09 Nov 2010
    Total 6 hours
    1. <Presentation> 2 hours We joined the presentation and we can get knowledge from other teams. I think this time many teams try to do hard, so average level becomes high.
    2. <Research for ASP.net Membership> 4 hours I still research login authentication using role function. And I couldn't find solution today also. Who can use this function properly? Microsoft should have good reference.

    08 Nov 2010
    Total 6 hours
    1. <Group Meeting> 1 hours We discussed how much we will finish by next week. We decided to do up to prototype and plus alpha. But this time, the application must have a validation and security. So we will become busy. 
    2. <Research for ASP.net Membership> 5 hours I researched ASP.net membership function, because I want to use role function. However, there is no good solution. If I follow the web site, which is tutorial website, it will not be enough to control using role. Microsoft offered many references, but the concept is not so clear, that's why it is very difficult to find good solution. 

    Saturday 6 November 2010

    Week-09-CRM

    07 Nov 2010
    Total 5 hours
    1. <Group Meeting> 3 hours We discussed about login function because we don't want to create duplicated pages. Maybe ASP.net offers those functionality for the secure login and authorization purpose. However, we couldn't get clear idea of the function. Because many references are written different way, so we cannot understand what is the correct answer.
    2. <Create Dummy data> 2 hours I want to finish to create dummy data today, but I couldn't finish because of the research of role function. If I have enough time, I can do both:)

    06 Nov 2010
    Total 5 hours
    1. <Group meeting> 1 hour We reviewed ERD. There is no answer, so we are still wondering it is suitable or not. But we can understand many things, so after finish this project, we can continue more efficient product.
    2. <Create SQL statement> 3hours I created SQL statement, I thought I can reuse previous SQL statement, but I couldn't. Because there are many changes, I needed to create first.
    3. <Research for the role> 1 hour We discuss about the system admin function. System admin is like a add-on to the accountant role, therefore, many functions are duplicated. I need to research how to solve this problem using ASP.net.


    05 Nov 2010
    Total 2 hours
    1.  <Group meeting> 2 hours Today we talked about the ERD and we need to modify Database layout many things. After configure ERD, we can start final coding. This time I want to create more beautiful coding, maybe I can do.

    04 Nov 2010
    Total 5 hours
    1. <Coding for Reminder function> 1 hours I almost all finish reminder function. I don't want to see reminder anymore:) But still I have to create reminder function for the final version. We don't have enough time coding.
    2. <Group Meeting> 2 hours We discussed about the agenda for the client meeting. Today we need to discuss with our client many things. So we prepare for the client meeting. Our client is very busy. I'm not sure he has time or not.
    3. <Client Meeting> 2 hours Hopefully he has time to discuss us, so we could get a lots of requirements from him. Many parts must be changed, we will become more busy.

    03 Nov 2010
    Total 6 hours
    1. <Coding for Reminder function> 2 hours I updated reminder search function. But I wonder it is handy or not. Uhhh... I hope it will be useful for our client. And also we are thinking whether bulk or one by one e-mail is good.
    2. <Group Meeting> 1 hour We will have a client meeting, so now we discuss about the agenda. This time we have a lot of questions, so we may not have enough time to ask everything.
    3. <Research> 3 hours I researched login function for after logout. Normal login is not so hard, but if we want to create real secure login, it will be difficult. Now I research back button restriction.

    02 Nov 2010
    Total 6 hours

    1. <Presentation> 2 hours We showed the our progress and receiving email function. Actually, I don't know they understand or not. But the atmosphere is good mood. Therefore, I think OK.
    2. <Group Meeting> 2 hours We discussed about the presentation, this time there are many team will explain, so we may not have time to show our progress.
    3. <Coding for Reminder function> 2 hours I need to upgrade for the reminder function. There are many similar coding, so I wonder what is the good way. This is prototype, so I need to refresh my mind and then I start coding.


    01 Nov 2010
    Total 6 hours

    1. <Group Meeting> 2 hours We discussed about the presentation, what we will explain. My supervisor advised us to tell our progress briefly. So I created the PPT slide for the presentation.
    2. <Coding for Reminder function> 4 hours I almost finished the reminder function. However it becomes very complex, so sometimes I am confused by myself. I need to get more clear idea for the reminder function.