Common functionality recommendations for a small-business site [closed] - c#

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
So a friend of mine has a small business, where he sells paper products, as well as custom posters, banners, and the like. He doesn't have a website, so he's hired me to create one for him, where users can place orders, check the status of their order, etc.
Other than his requirements, I'm trying to come up with other common functionalities that I should include in the site; things like a company blog, an admin section containing a simple CMS and error tracking/logging, a contact form, etc. Just common things that would be useful for a business site that he (or even I) might not think of.
Even small ideas are welcome. Someone suggested a global announcement module that would display a message on every page, for announcements like "Site maintenance from 1:00 - 4:00 tomorrow", or something like that.
Any other suggestions?

For a small business site I wouldn't even think of building it myself. Instead, just get a CMS like DotNetuke, or Drupal. Basically pick your poison.
All of the major ones have a number of free (and for sale) modules you can just drop in. Little things like shopping carts, blogs, photo carousels, etc.
Also, I wouldn't consider setting up a blog on the site unless the owner is going to commit to actually posting stuff to it.
All of this has been built a million times over and doing a custom solution for your friend is just going to hamstring him and lock you into doing updates. Ultimately you can set up a site in an afternoon with a decent skin for under $200 using one of the CMS's above. This is going to be far less than the amount of time you spend coding it yourself... And, I can pretty much guarantee he would end up with far more functionality than you could conceivably provide in any feasible amount of time.
Now if you just want to build your own CMS then I'd suggest doing it for your own site instead of his. Friends don't let Friends code when it's not necessary.

You could work on some design related ideas like pricing tables for his products or the ability for clients to be able to publisise the work he sells by creating links to DIGG, TWTITTER, FACEBOOK, etc.
Consider:
http://uxmovement.com/
It's an excellent design oriented blog that concentrates a lot on website and UI design.
Good luck!

Related

Integrating bank accounts [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Is there any API to integrate bank accounts into a .NET application? I am looking to provide the user an ability to pull bank statements into my software.
Please suggest.
You'll need to ask the bank that, which bank are you with? Most major providers allow some kind of programmatic access to their systems.
Failing that (and security aside) you could generate a HTTP Request/Response to the banks website and replying on being provided the correct credentials should be able to retreive any information available online (such as past statements) - bonus if they provide them in PDF format.
Not sure which country you are in but Egg Plc use an Active X control to open and read the balance of customers other bank accounts for them - obviously with their permission. It works pretty well.
I am pretty sure that there are some heavy limitations for this. Every bank may have another API, every bank may/will have a pretty good security context. But lets assume you do have access to an API of one (many) banks. So you do provide another UI for e.g. bank account information.
If I would use your program I would be very, very careful! I don't see your code, I do not know what you do with my user/account information - so I would not give you any account information!
What if you misuse my information and try to withdraw money (yea yea I know, in most cases there will be a seperate security layer preventing this TANs, PINs aso). In any way - A software using/providing net-banking functionality - which is not provided BY a bank / or authorized/officially checked by a bank - looks very suspicious to me!
I am sorry, but I would recommend not implementing any netbanking functionality using others account information.
There is not much that can be suggested there in terms of "use this and that". The problem is that each and every bank has its own system to do things and its own interfaces (if they even provide any). Banks are most often huge constructs that build on traditional old systems and are slow to adapt thus it is quite possible that they don't provide any interface for external programs at all (in addition to being traditional it is also about security measures).
That prelude said this means that you would need to decie which banks your customers most likely use and then talk with these banks if they provide any interface for external programs/providers to get the infos you want to provide to your customers. But be prepared for that the bank says that they only provide this service to other banks or even an outright no.
It is slightly different if we talk about internet constructs that are similar to banks like paypal,.... I say similar as they also have accounts and those can be filled and used, ... . These constructs OFTEN have some form of interface that can be used to use them BUT as far as I am aware even these don't provide a direct way for you to tell your customer what the current account status of theirs is. For this they have to go and log into their account THERE.
Thus all in all you will have to talk to the individual providers/banks but aside from them giving you informations on how to call their website so that the initial info for one transaction is filled in it is HIGHLY unlikely you will get any interface there (and for normal banks.....most probably no interface at all).

What are the steps necessary in creating a community driven website?

Hello people from StackOverflow!
I come to you with yet another question. :)
As stated in some of my previous questions, I'm interested in creating a website that handles jobs and company openings for people to browse. I intend to have a way for people to upload CV's, apply to a position, and have companies post jobs as well.
Since I've never done a project of this scope before, I fear that I may be neglecting certain things that are a must for a web-targeted application.
I realize that is a very broad question, perhaps too broad to even answer. However, I'd really like someone to provide just a little input on this. :)
What things do I need to have in mind when I create a website of this type?
I'm going to be using ASP.Net and C#.
Edit: Just to clarify, the website is going to be local to a country in eastern europe.
Taking on careers.stackoverflow then? :)
One of the biggest things, is not even a technical thing to be thinking about - how are you going to pull in enough users to make the site take off?
It's a bit of a chicken and egg situation - if you don't have recruiters on the site, noone's CV will get viewed. If you don't have CVs listed, recruiters won't use the site. So first and foremost, you need to be thinking about how you will build up a community.
the site must have a good, easy to use, user experience. Make it easy for everyone to achieve what they want.
what makes your site stand out from others? why should people use yours instead of another one?
You could start with the free "Job Site Starter Kit":
http://www.asp.net/downloads/starter-kits/job/
* Enables job seekers to post resumes
* Enables job seekers to search for job postings
* Enables employers to enter profile of their company
* Enables employers to post one or more job postings
First you need a community. It doesn't really matter which one, but it would help if you were also a member of this community. Let's take Underwater Basket Weavers. Then find a problem that this community has or something this community needs to share. Almost invariably it involves information exchange but in some cases it may actually be service based. Then focus your efforts on solving or supplementing that issue. For our Underwater Basket Weavers, we may have a need to share techniques on how to weave specific materials, where to get materials. How could they share this information and how could you make it interesting to them?
Know your audience. Learn their issues. Apply yourself to filling that void.

Looking for patterns/best practices for calculating complex discounts [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I'm developing a price calculation engine. I've looked all over and there's nothing that really fits what we need. However, I'm now looking how to implement specific prices and/or discounts. I don't want to introduce a rule based engine to my end-users, because they won't get it.
For example, when you order an ItemX the price is $30. But in combination with ItemY the price of ItemX is $20. Or when ordering five of ItemX, each after it will be only $15.
Any ideas on where to start? How to take this on? Perhaps some (open source) example applications that contain practices like these? Any (technical) patterns I could use? Preferably in C#.
Thanks in advance!
There are many ways you can achieve this, but I think the one which might be most useful for you would be to define a DSL that you can use to express your discounts in such a way where they can be easily explained and rationalised with business users. An example from one of ayende's articles on DSLs in boo is:
apply_discount_of 5.percent:
when order.Total > 1000 and customer.IsPreferred
when order.Total > 10000
suggest_registered_to_preferred:
when order.Total > 100 and not customer.IsPreferred
As you can see you can see, this is the kind of thing you can print out and show to a client and they will immediately understand what's going on.
Of course developing something like this is time consuming, expensive and fraught with funky edge cases. However it has the benefit of being code which can be unit tested, executed and debugged.
If boo isn't your thing, then maybe you could look at defining something similar in ironruby, ironpython or F#. I would however suggest staying away from XML for defining these rules unless you really enjoy a world of pain.
This is however the kind of thing that products like Biztalk were designed to handle. Which rules engines have you evaluated and found lacking?
We use a Rule Engine for this type of complex calculation. Our platform is Java and we use Drools (which we're happy with). Drools is also available for .Net. Here's a list of open source Rules Engines for .NET.
I am sorry to have to say this, but this would seem like you would have to apply some Pricing Rule Engine to achive what you are after.
Would seem like you have to
Store the available items, and their
discounts on per pruchase.
Store which items in combination
would discount each other.
Also maybe thinking of per
unit/quantity purchased per unit, or
maybe per package/special.
Might want to look at keeping a
archive/storage of these
specials/packages, just incase the
customer wants a reprint of the
original invoice.
In general there is a lot of possible rules/combinations that can be thought of, and you as developer can implement these and hide them from the user, or allow the user to create them, but somebody has to do so.
And then, when you dont feel like implementing your own, GOOGLE shold provide some:
Open Source Rule Engines

Programming hire test - Test a developers knowledge in C# / ASP.NET [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
We're hiring a .NET developer soon, and I was assigned to create a test, which would take aprox: 1h to solve. A test which would test the programmers knowledge in (mainly) C# and ASP.NET.
This is what i've come up with so far:
Use project #1 to read data(HTML) from the specified URL and output all links(anchors) containing anchor name “xxxxxxxxx”. You are free to use 3rd party libraries. My main thought here was to test how the developer would go about solving the problem. For example:
Create a regex which would parse all the data needed.
Create a DOM-tree and use XPATH to find all anchor nodes.
Iterate the whole string and perform manual string compares.
Create a new solution where you demonstrate the usage of .NET masterpages.
Connect the solution to the ******** database. And output all customers from the “********_customers” table.
Create a new button which refreshes all users using AJAX.
Pretty basic stuff. Though, I also added the one below. Mainly to test the developers OO knowledge. Do you think this is too "overkill", or what kind of test would you suggest? If you were to hire a ASP.NET developer, what would your main focus be? ADO.NET? IO? string handling?
Create an interface/abstract class implementation demonstrating the functionallity of either the Factory, Factory Method, Command or Decorator pattern. You wont need to implement any functionallity, just use comments in your abstract class.
Thanks in advance!
The task you gave is essentially a day or two worth of coding if you want to have reasonably readable code. Within an hour I guess I would do it, but you'd have to read code that has cryptically named methods, unreadable regexes, weird callbacks, no error handling and overall is pretty darn ugly. Looking at it you would not hire me.
Before you give your question to candidates, first make sure that your peers/programmers can do it first. And that you can code it in less than 60 minutes in a way that would satisfy you.
That said, I do not know if test is the best choice for hiring anyone. A few interviewing bloggers wrote about their experience coming from conducting tons of interviews:
Guerilla Guide to Interviewing by Joel Spolksy
Truth about interviewing, Get that job at Google (and many others) by Steve Yegge
I totally agree with them. Having conducted about a gazillion of interviews myself, I find that asking basic technology related questions is not nearly as good as asking to implement a bit of recursion or pointers (if someone claims to know C/C++).
By hiring someone who understands recursion/algorithms you get a smart guy who can learn new technology. When you hire someone who knows how to connect to a database, who knows how to connect to a database but not necessarily qualified to do much more than that.
There are a few sources of good programming questions that are somewhere between coding and algorithms that may inspire you. They do not test .NET at all, but are very good indicator of smart programmers.
Top Coder
Google Code jam
Within 1 hour you can only test his programming skills, but it's not enough to write the code sample.
Take a look at this C# / ASP.NET MVC test:
http://tests4geeks.com/test/asp-net-mvc-c-sharp
After the applicant will pass the test and result will be good, then invite him to the interview and talk about his experience. Ask about most difficult features, that he implemented in his projects. In other words, you must understand, if he know and can do enough to take part in your project.
If you still want to ask him to write some code. That is some idea:
There are the students and subjects. Please ask to write 3 pages (asp .net mvc or web-forms). First and second - for editing the dictionary of students and subjects. Third form must contain be the table. The students are in left column. The subjects are in the top row. The marks are at the intersection. Each mark can be edited (text box) and saved. Saving could be implemented by clicking the common button "Save". Or it could save each cell automatically using the Ajax.
This is very simple example, but it would show you how user writes the code, what techniques does he use.
I would have thought that it would be better to simply create a test that would make it easy for you to put developers into different 'skill buckets'.
Why not have three or four sections or features that the developer must 'layer' features on top one another to show their programming and design skills.
Part 1: Implement x easy difficulty
features.
Part 2: Implement x medium difficulty
features.
Part 3: Implement x difficult
features.
Part 4: Implement x very difficult features.
And give the developer 1 hour to write the application. Make it realistic that they can implement the features in the given time frame.
As Joel and Jeff say on the Stackoverflow podcast, there is a direct correlation between developer skill and speed.
Think about the way exams are structured? We can all get 100% of the questions correct in any exam we sit if we had infinite time, but in 1 hour?
This way, If a developer takes your test and only implements features up to Section 2 in the time period, then you should have a safe indication that they are not suitable for the job. Section 3 features all done then they are good enough and section 4 complete would indicate that they are very experienced and a slight cut above the rest.
However I would also look at the overall polish that the developer has given to the code. If they implemented all features up to section 4, but poorly, then they are also not going to be someone you want. IF a developer only did up to section 3 but implemented everything very elegantly, then I would want to hire them.
I also think that 1 hour is perhaps a little too long. I would aim for 10-40 minutes obviously you may need to cut out section 4 that I proposed.
You should check
GeekInterview -- a good source for interview questions
There are hundreds of questions.
I think you would be much better off coming up with a single question that will allow you to see more than just development skills using your target technologies. Strong problem solving skills are as important as expertise in a specific technology stack.
I would even recommend that you explore the two aspects of a candidate in different parts of the process. I usually ask a bunch of questions about the technology stack we are using on our project to gauge the candidates level of knowledge as it relates to that stack.
Then I ask them a pure problem solving question and I allow them to use whichever technology they are most comfortable with to solve the problem (their choice of technology can be an important indicator).
I particularly like Graph Theory related problems. The candidates solutions will tell you a ton about how they approach, solve problems as well as how they validate their solutions.
As part of the problem solving portion of the interview you should be looking for:
Proper data structure design
Implementation of OO best practices
Proper solution (can they debug problems effectively... one great way to see this is do not allow them to use a computer, make them code on a whiteboard and debug in their heads)
Proper solution validation (do they come up with test cases)
My 2 cents:
We have a programming test in my company that is easy. Basically, you have to implement the listener pattern extending the ArrayList class, create unit tests for it (based on at least what we require), document the corner cases, document the program itself if you want to, and then send the test back to us.
A developer has 48 hours to complete that test. We ask for production quality in the test. We want to test the following items:
Was the developer smart enough to cover the corner cases?
Is the developer implementation of multi-threading satisfactory?
Are the unit tests good enough? Do they cover enough cases?
Is the code well written and documented? Will someone be able to maintain that code in the future?
Does he care about his code? Did he explain why he did "A" and not "B"?
I don't think short tests are capable of evaluating a developer. You may ask for a tool or technology that someone have not been using in the past months, and whoever is being tested for that technology will need sometime to get up to speed - but if a developer was working with that the day before, he will know by memory how to use it, and he/ she will seem smarter than the other developer, what may not be true.
But if you ask for something that is tricky and you are interviewing the developer, you can check how he is going to solve the problem - I don't think it really matters if he/ she cannot get the 100% right answer, as long as he/ she can talk about the problems that you found on the code and show that they actually understand whatever you explained to them.
In the past we have used problems from Google code jam. the problems in the early rounds are easier and they get gradually harder. They are kind of algorithmic in nature, you can solve them in whatever language you like. As they get harder there is often an obvious 'brute force' kind of answer that won't work because of the size of the data. So you have to think of something more optimal.
The first test you suggested should take 10min-40min for a basic dev - I would use a web-crawler I have in my library that converts HTML to XML then easily use Linq to XML.
I would test for lambda expressions, performance patterns maintain files, or writing an object to several files dynamically.
Maybe you would like to test unmanged code, pointers etc.
I donno, im just writing-jabbering while things are comin up to my mind, i wrote things that was hard for me to implement.
few days ago I was invited to pass C# programming test at skillbox website there was 30 questions quiz and 45 time to pass it. Below is some of them:
1) What will be printed by running the program?
#if DEBUG
Console.WriteLine("DEBUG");
#else
Console.WriteLine("RELEASE");
#endif
2) What will be the result of calling SomeMethod():
public static void SomeMethod()
{
string s1 = "a";
string s2 = "b";
Swap(ref s1, ref s2);
Console.WriteLine(s1);
Console.WriteLine(s2);
}
public static void Swap(ref Object a, ref Object b)
{
Object t = b;
b = a;
a = t;
}
Here is a link for reference, I think you can find more C# quezzes there http://skillbox.io

What are the core elements to include in Support Documentation? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I have created an application which needs 'hand-over' to the support group in the next month.
The application is fairly small (2 months development), and consists of two client side applications and a database, it's written in c# for the windows platform.
I have a broad idea of what to include in a support document, but I haven't needed to make very many support documents so far in my career and I want a solid list of items to include.
I guess my goal is to make the lives of everyone in the support group easier and as stress free as possible.
So I guess my questions are:
What should a support document absolutely contain
What additional things have you put in support documents to make them extra useful.
What other activities can be done before hand-over to make all our lives easier?
Having been on both sides of this process professionally, I can say that the following should be mandatory:
the documentation of the code (javadoc, doxygen, etc)
details on build process
where to get current source
how to file bugs (they will happen)
route to provide patches either to the source or to customers
how it works (simple, but often overlooked)
user-customizable portions (eg there is a scripting component)
primary contacts for each component, aka escalation path
encouragement for feedback from Support as to what else they want to see
I'm sure lots of other things can be added, but these are the top priority in my mind.
Functional Specification (If you have one)
User Manual. Create one if you don't have
Technical Manual, Containing
Deployment Diagram
Softwares Used
Configuration and build details
Deatils of Server ip and admin / oracle / websphere passwords
Testing Document
Over view document giving out
Where all documents are kept
Version Control repository and its project/ user details
Application usernames / password
Any support SQL's/tools etc created by the development team, for analysis, loading data etc.
Include Screenshots of operations and output.
Prefer "online easily update-able" doc (wiki-like) instead of paper or pdf.
If online, make it searchable and cross-linked.
A usermanual is a neat thing (pictures, descriptions, aso.)
A rundown of the different features within the application
Thats what i'm thinking ontop of my head if this is "only" for support staff and not further development.

Categories

Resources