Week 5: Good Way to Separate Work

For different teams and teammates, I found my collaboration methods are totally different.

For the team with a good segmented project, I prefer to work on my own part. And then, think about how to merge all our works together. However, most of the time it is not that easy.

Work Separation

Since I do not have any industry experience, I have no idea what is a good way to divide our projects. I always go to the most direct approach, which is to divide it based on front-end pages.

However, I found this method got a big flaw, which is not noticing the blocker for each team member. For example, I was responsible to set up a skeleton structure for our project and a simple database, other team members’ work will depend on mine. If I did not set it up quickly, it will be the major blocker for the whole team.

Better Approach

At this time, I thought there must be a better way to avoid that. After researching for some info, next time, I would like to separate the work this way:

  • Front-end Page HTML/CSS
  • Application business logic
  • Back-end database connection
  • Database setup

From this approach, each part could be a little bit more isolated before integration.

Do you have a better way to divide a project? Please share your thoughts with me.

Week 4: Bad Habit

Discover My Bad Habit

This week went by really fast, our team is focusing on a good project structure. We started to build up a structure that can help us start and build up easily. Through this process, I found a bid bad habit of mine really affect my development.

Internal Server Error

Every time I code something new, I tend to write a lot of code without testing. After that, something will went wrong and I don’t know why! So frustrated and so hard to change this habit.

Fix it

To make my future work organize and well tested, I would like to train my coding process to fix it.

Here are some naive thoughts to improve the process.

Firstly, be clear about one feature, how many parts will involve. Take login page as an example, it will include HTML frontend page, database items like username, email, password, and connection to GET from frontend, and to call data from database.

Secondly, after finish coding each part, must do a test to check on the work. Like, HTML file is done, I need to show it and check if the display and all elements are included. The items needed are added to the database, run shell to check if the item is successfully added to the database, and check if the item is good to use.

Finally, check all parts as a whole, test all the parts along the process including some corner cases.

At the End

Did you ever face this kind of struggle? Please share with me how do you overcome it.

Thank you for reading along my journey, hope your project is going well and smooth!

Week3: Relational Database Basics

Our Project Progress

Last week, our team decided to use Flask as our project framework. After researching and familiarize Flask, we finally set up our framework and start to code frontend pages. Since there’s not much time before the midpoint, we have to finish the design and implementation of the database within the next week.

Relational Database Design

From previous experience (CS340), database design will include several aspects. Here’s how I did it before:

  • Table outline (includes table names, items)
  • ERD (entity-relationship diagram)
  • Schema (details like primary key, foreign key, connection between tables)

There are several things I always keep in mind.

  • How do tables and tables connect?
  • What is the relationship between them?
  • Are all primary key and foreign key choices resonable?
  • Are all situations covered in the senario?

For entity-relationship diagram, sometimes we will need to face many to many(M:M) table relationship, which could be a pain for implementation and manipulation. If I found any M:M relationship, I will add one more table to change one M:M relationship to two 1:M relationships. Below is a schema with Class_Students table to solve many to many relationship between Students and Classes.

Schema

Summary

These are all super basic concepts for relational databases and some little insights from my previous experience. We will face a lot more complicated situations after joining the industry. Hope I can learn more about relational databases and NoSQL databases.

Please feel free to share your insights, thoughts, and advice regarding database-related topics! Hope every team has a great week ahead!

Week2: Project Plan for Resume

Previous project plan

Before the CS361 course, I never thought a project plan could be that important. After working with 4 teammates, a project plan was super important to lead our work, I finally realized.

Here were some aspects we covered in the previous project plan:

  1. Project achitecture
  2. Frontend prototype
  3. UML diagram
  4. Feature design
Part of frontend prototype

Capstone project plan

For the capstone project, our team decided to have a basic understanding of our web features. Each of us drew a draft version of our website and discuss all of the features based on the differences. Fortunately, this process worked quite well and quickly let us have an agreement on the project outlook and features.

However, we still have a lot of designs that need to decide on, like the project overall architecture, detailed tech stacks we want to use, database design, etc.

How to benefit my personal resume

At this point, I really hope this project can benefit and enhance my resume since I’m on the job-seeking path. What I have done before is more toward JavaScript and Node.js full-stack projects. For this project, I would love to do a project based on Python and Flask, which could add some diversity to my resume. I will make sure to talk to my teammates thoroughly.

To add to that, we are also considering using the Boostrap toolkit for our frontend instead of HTML5, which is also a tech stack industry uses often. Hopefully, it will collab well with Flask if we decided to use it.

In the last, we need to divide all tasks evenly for each team member to meet the 10-hour work requirement. This is the most tricky part for us. We cannot foresee how much work each part will actually spend. But, I’m confident our team will work accordingly and solve all problems together along the way.

Words at the end

To anyone reading this blog, from your perspective, what is the most important or most valuable part of your project plan? Please feel free to leave a comment.