To Demonstrate that you have acquired right practical skills & competencies to be an IT professional
Opertunity to get real world experience in a software development project.
Compulsory and offer 8 credits (Equivalent to two subjects)
Reasonably complex task that spreads over a year (semester 5 and semester 6).
Unlike an exam, you need to come up with a product as a solution to a business problem.
The working software (web or standalone) application code and database scripts.
Demonstration of the product to the evaluation panel followed by viva and code modification session.
Dissertation of the project.
What Winners Do?
Have a good positive attitude about the project and its benefits.
Start in time and finish in time.
Select a right client and project. (Having a client is optional but preferred.)
Select a right supervisor who has experience and talent to guide you to success.
Do not commit too many complex objectives to the customer (If you are having a customer.).
Unless you are an experienced programmer, do not demand financial benefits from the customer. It lead to additional complex commitments.
Understand the concepts and technologies well before starting the project.
If there are skill gaps (for example understanding Bootstrap framework), fill those up front.
Use standard technologies and general ways as much as possible. Then, if you get issues, you have a better chance of getting help and resolving it.
Do not just do it, but manage (Plan -> Organize -> Lead -> Control) it.
Use engineering (Specification -> Design -> Develop -> Test) approach.
Have a proper upfront database design (but make it open to change in case of need.)
Use agile iterative approach where you deliver working product increments gradually.
Measure your progress by functionalities (user stories), and not by other artifacts like diagrams and documentation.
Submit project proposal, progress reports, interim reports and other deliverables on time.
Do not try to make things perfect at first. Differ things like exhaustive validations, security for latter stages.
Nice to have features like e-mail notifications, SMS integrations (if needed) must be done only after core functionalities are completed.
Make the user interfaces (UI) simple, consistent and professional.
Do not attempt to over engineering. Instead, try to come up with the simplest solution that works.
Follow naming conventions in both coding and database tables.
Write properly indented code to make it nice and readable.
Have a healthy dialog and get help from your supervisor and also get your work reviewed periodically.
Use Google search effectively to find solutions. The same problem you face may have been encountered by many others before, and discussed possible solutions.
At times, people are blind to their own bugs. If you cannot figure it out yourself, ask a friend to troubleshoot.
Use online forums like StackOverflow to get help from others. When you ask questions be nice, polite and thankful.
Backup your code, database and other documentation regularly in both online media like Google drive and offline media like a pen drive.
Be honest and true to your potential in developing your project rather than trying to match what others do.
Do not cheat by getting it done by others. It will badly shape your character, and also may well be caught in the viva and code modification session.
Enjoy your work as an interesting challenge.
Make sure that your customer is benefited by using your product that he is really happy about it.
Have not acquired sufficient practical skills and confidence during first two years of studies.
Think that documentation is more important than the product.
Think that mere use of complex framework is a silver bullet that will solve all the problems. (In fact, unless you are reasonably competent and experience with coding, use of complex frameworks will make you even more stressed.)
Think that use of templates will solve all your problems and finally you struck with it. (Tendency to use template is most cases a symptom that you are not confident about concepts, lack of understanding on simple technologies and laziness to build nice code which you are 100% in control.)
Think that miracle will happen at latter stage of the project.
What is a Good Project?
You really feel that it is usefull & benifitial to client and users.
You really feel that your product has good business potential and customer(s) will be really happy to use the system.
It is not just automating a business process. It improve the business process, productivity, quality & competitive advantage.
Reasonable size project to demonstrate your technical and other abilities and effort worth of two subjects.
Must be a software (web or stand alone) development project that solve a real world buisiness problem.
Mere web site development is not accepted, and it must be a web application or stand alone application.
Order processing, inventory management, reservation, customer management, HR management, etc.. are examples for typical suitable projects.
A reasonable scope must be verified with the supervisor.
Research type projects are not encouraged for BIT degree.
A reasonable scoped project will have about 12 to 18 tables.
The candidate is expected to spend, on an average, at least 12 hours per week amounting to a minimum total of 300 hours, excluding the time taken for report writing and preparation of presentation material.
How to Find a Client (optional)?
A good business always strive to expand and increase productivity. Look for such a business.
It can be small or medium scale company or individual business.
You may approach to get a project through your friends, relations etc.. (You need your inter personal soft skills and build confidence about your capabilities to get this done.)
Think about business values. Unless the proposed IT solution add value, the customer will not be interested.
If you are employed, you may develop a system for your organization as well.
There are no restrictions in selecting the technologies (Programming languages, DBMS etc..).
You have the freedom to use frameworks (eg: MVC frame works like CodeIgnitor, Laravel etc.. and responsive web frameworks like Bootstrap, Foundation, etc..)
You can use third party components like Jquery calender components, page templates, etc..
However, you are not allowed to use high level code generating tools and CMS to build your software.