I am learning various coding languages and applications. As a project (that would be of benefit to me) I would like to design an appointment management system (I know there are many on the market...they are expensive and/or don't quite do what I need). The idea is this:
Have a calendar layout like iCal or GoogleCal where I can click on the day and time and write in an appointment (eg, "Penny"). I would also like next to the appointments (or maybe as a separate menu when clicking the name) options for marking off whether the "student" attended the appointment, did they pay for it, did they miss it and pay or miss and not pay, etc. I need to be able to look up each student and see their status, eg lessons paid for, not paid for, number of lessons missed, money owed, etc.
The key is that I can enter lessons in the calendar layout directly rather than having to open many menus to get a lesson on the cal. Also, I need to be able to edit repeated lessons individually (ie, mark one as missed), without affecting all the others (again, ideally without too many menus to open).
I've been using iCal and GoogleCal and they sort of do what I need but not fully. I've tried paid applications and again, some good functions, some not. Given I'm trying to learn various programming languages, SQL, etc...I thought this would be a good project to work on.
However, I have no idea where to start! I've played with making a calendar in Python but can't seem to find a way to write appointments on it. I'm looking into SQL and thinking that'll prob be required to make the database of students (but I'd prefer to enter students/appointments without having to enter a million pieces of info into fields...just don't need that for my purposes).
If someone could please recommend what approach and software/code would be appropriate for this project and basically point me in the right direction, that would be much appreciated. TIA!
Related
This request is more about some research materials...
I want to build an application to control medicine dosage and to do this I think about making sample database with like 1000 medicines with info most importantly about a dosage (4 times a day, every 4 hours...) and composition.
Does anyone know about some webpage that could easily provide me with this kind of information? I think about webscraping it with python. Or maybe somewhere there is already created sample database like this.
Also, I think about making feature about what elements in medicine composition can be dangerous together. Something like: That you can't take some 3 medicines together. Maybe someone know and could recommend some webpage, article, maybe algorithm that could provide me more knowledge about this subject.
I just need pointers on where to begin. I have some experience with Python, but nothing to brag about.
My end goal is to create a website that will allow multiple users to access it from different computers to fill the table with simple data, very simillar to what Google Sheets alows, and then printing it on a single sheet of paper. Idealy I want my programm to intelegently determine the width of rows and columns so that the table would look decently and would fill the page accordingly.
Right now all I need is some pointers on where to begin. Like can I use SQL to create these tables and have online fuctionality for users to access and fill the spreadsheet, and how to go about printing it.
I know this is very noob question, but I can't seem to find anything relevant here on by just using google.
Thank you.
I don't think this is a very good StackOverflow question because it is very broad and not programming specific. You are asking how to start a new software project which in my opinion belongs more in the software engineering meta: https://softwareengineering.stackexchange.com/
Anyhow, how I would take on such a project:
First I would define my project scope. What is the functionality of the end-product? What must it be able to do and what not? Who are the end-users using the product and what do they expect? These are so called functional requirements.
In which way does the product deliver value? Is it fast, modifiable, distributed... These are so called non-functional requirements.
Develop a basic software architecture based on the previous requirements using patterns and tactics and identify the different subsystems. On the top of my hat I would divide it in a frontend component using a web application, backend component in your favourite language and a database component for persistence.
Research possible languages frameworks for each component, decide and start coding!
For the 4th step I suggest you have a look at Python Django which includes all of this stuff out-of-the-box.
I have been wanting to get into Python for a while now and have accumulated quite a few links to tutorials, books, getting started guides and the like. I have done a little programming in PERL and PHP, but mostly just basic stuff.
I'd like to be able to set expectations for myself, so based on the following requirements how long do you think it will take to get this app up and running?
Online Collection DB
Users can create accounts that are authenticated through token sent via e-mail
Once logged in, users can add items to pre-created collections (like "DVD" or "Software")
Each collection has it's own template with attributes (ie: DVD has Name, Year, Studio, Rating, Comments, etc)
Users can list all items in collections (all DVDs, all Software), sort by various attributes
Also: Yes I know there are lots of online tools like this, but I want to build it on my own with Python
Assuming you're already familiar with another programming language:
Time to learn python basics: 1 week.
Total time to figure out email module: 2 days.
Total time to figure out httplib module: 1 days.
Total time to figure out creating database: 3 days.
Total time to learn about SQL: 2 weeks.
Total time to figure out that you probably don't need SQL: 1 week.
Total time writing the rest of the logic in python: 1 week.
Probably...
Assuming that you don't write everything from the ground up and reuse basic components, this shouldn't be too hard. Probably the most difficult aspect will be authentication, because that requires domain specific knowledge and is hard to get right in any language. I would suggest starting with the basic functionality, even maybe learn how to get it up and running on App Engine, and then once you have the basic functionality, then you can deal with the business of authentication and users.
I was working on a project a few months ago, and had the need to implement an award system. Similar to StackOverflow's badge system. Badges
I might have not implemented it in the best possible way, and I am curious what your say in it would be.
What would a good way to track user activities, needed for badge awarding be?
Stackoverflow's system needs to know of a lot of information, and I also get the impression that there would be a lot of data processing complicating things.
I would assume that SO calculates badges once or twice every 24, and that maybe logs are stored or a server dedicated to badge calculation.
Thoughts?
I don't think is as complicated as you think. I highly doubt that SO calculates badges with some kind of user activity log (although technically the entire database is a user activity log). When I look at the lists of badges, I don't see anything that can't be implemented by running a SQL select query.
Some of the queries could be pretty complicated, and there might be some sort of fancy caching mechanism, but I don't see any reason why you would have to calculate badges in batches.
In general badge/point systems can be based on two things.
Activity log of interesting events, this is effectively the paper register receipt of what has happend such that you can re-compute from the ground up if it's ever needed. Can be as simple as (user_id, timestamp, event_id, event_detail)
Most of the time you've pre-designed your scoring/point system so you know exactly which counters to keep on a user. Now it's as simple as having a big record that contains all of the details. (user_id, reply_points, login_points, last_login, thumbs_up_points, etc.,etc.)
Now you can slap some simple methods on that model object and have it manage/store the points as needed.
I'm about to build a site that has about half a dozen fairly similar products. They're all DVDs so they fit into a very "fixed" database very well. I was going to make a DVD model. Tag them up. All very simple. All very easy.
But we need to be able to sell them. The current site outsources the whole purchasing system but that's not going to fly on the new site. We want to integrate everything right up until the payment (for both UX reasons plus we get to customise the process a lot more).
The other problem with the outsourced problem is it doesn't account for people that don't need to pay VAT (sales tax) or for the fact you get a discounts if you buy more than one of the same thing, or more than one SKU at the same time.
So I've been looking around.
Satchmo looks like a whole mini-framework. It has listing options that I just don't need with the quantities of SKUs I'm dealing with.
django-cart has been re-hashed as of March but it looks pretty abandoned since then.
I'm looking for something that will let me:
pass it a model instances, a price and a quantity
apply a quantities formula based on the number of unique SKUs and copies in the same title
list what's in the cart on every page
That's about it (but it's quite fiddly, nevertheless). I can handle the final order processing nonsense.
Or am I just being silly?
Should I just get on and Do It Myself? If that's your vote, I've never built a cart before so are there any considerations that are not obvious to somebody who has only used shopping carts before?
Since you asked: if your needs are that limited, it does sound like a DIY situation to me. I don't see what's so fiddly about it; what complexity there is is all in the pricing formula, and you're planning to supply that either way. Add in Django's built-in session support and you're most of the way there.
There is an open source solution available: http://www.getlfs.com
I don't know if you could tweak it to suit you but it's based on the technologies you mention. The license is very liberal and it is heavily maintained.