Creating an app for educational purposes

ST
Shopify Partner
3 0 1

Hi!

This is my first post, so apologise if this has already been asked...I've looked around everywhere and couldn't really find a straight answer to similiar questions.

Right, so basically, I would like to create a personal app for my shopify website (not live yet) as part of my university project. The concept of the app is to simply;

Func Requirements
1. Allow user to login/logout.
2. Allow user to upload restricted formated content.
3. Have a dashboard where they can see a decimal value (earnings).
4. Update personal details,
5. Admin (me) - to manipulate user account (e.g. approve,dissaprove,edit)

These are some of my functional requirements, I have more but If I can get a good head start on some of these requirement then I don't think Ill have any problems doing the other requirements.

So, having a look around the forums, API, documents and other sites... I haven't been able to establish what exactly it is that I need to start stuff off. As far as I am aware I need to have the following tools and knowledge:

1. Ruby (to build the app) - I'm intermediate in Java, so familiar with OO and implementing very basica apps. 
2. Sinatra (the basic framework for a ruby app) - familiar with certain framework but never used Ruby, although picking it up shouldn't be too hard.
3. Liquid (built on top of ruby - front end of the site) - I read somewhere about using this to match the app with the front end of my website?
3. Github ( To download rubygem?) - I haven't used github before but used SVN on a very basic level. Could someone elaborate what else I can get from their Shopify's GitHub please?
4. HTML,CSS,JAVASCRIPT - To implement the front end of the app, for my users to use the app? 
5. Client-Server - Not familiar with XML and JSON...Also, would I have to have my own DB to store users of the app or is it possible to use shopify's DB for this too (since there is a Customer object)....Familiar with PHP and MYSQL

This is what I have summed up from the top of my head, I would really appreciate it if someone could advise me on the things I've mentioned above as well as other things which I have missed out. This app is not for commercial purposes, I've decided to do this to test my ability and to actually develop meaningful project, instead of doing something which wouldn't be used at all...

Based on my schedule, I would like to build a prototype in 2 months, so would like to spend 4-6 weeks learning the tools and required knowledge before I jump into the implemention and testing. 

I've asked shopify chat for more assistance, but they haven't had any knowledge about Shopify's API and have kept pushing me to these forums and to seek advice from shopify partners (which I did) but haven't got any response...I'm guessing its because im not a paying customer, which I understand ;-). But yeah, any advice would be highly appreciated..

Cheers,
Amit

Jamie_D_
Shopify Staff (Retired)
Shopify Staff (Retired)
531 1 99

Hey Amit,

Very cool to hear that you are building a Shopify application for your project.

I'll try to touch on some of your requirements:

1) Users of the Shopify application would be individual Shopify merchants. They will authenticate with your application using the OAuth authentication protocol. You can create multiple development stores to test with from your Shopify partner account. The only way to "log out" a user (merchant) would be for the merchant to uninstall the application from their Shopify admin panel.

4) The personal details of the merchant are not writable on Shopify -- you would need to store these details in your application.

5) You can trigger an uninstallation of an application (see the OAuth documentation), but there is no way to individually approve installation of an application. You could maintain a list of approved users in your application and not serve any useful content to any users who are not approved.

You will need to store the access tokens for your application in your own database. Most applications use the domain of the shop (e.g. my-shop.myshopify.com) and the access token as the respective key, value pair. The Customers resource is for customers of a particular store, not users of the application. 

If you want to build your application using Sinatra, there are some tutorials in our documentation. You can also check out the shopify-sinatra-app framework for building Shopify applications.

0 Likes
ST
Shopify Partner
3 0 1

Hi Jamie,

Thanks for info! 

The app will be private, so I will not be offering this on the market. I was hoping to make webpages which is not embedded in shopify for the public users (merchants) so that they can; signup to an account, login and to be able to do the functional requirements mentioned previously. I was hoping to make the admin section to be embedded, so that I can login to my shopify account and do all my functional requirements via the app.  

My assumption about oauth was that it was not required, since the app won't be available in the marketplace at the present moment..

0 Likes
heyhost
Shopify Partner
106 1 16

Stating the obvious I suppose Amit, but it's not obligatory to use Ruby - although this would be a great opportunity to learn it.  You could use Java if that is your preference.

My enthusiasm greatly exceeds my talent.
0 Likes
ST
Shopify Partner
3 0 1

Hi,

Yeah I was considering looking into Java and the Spark Framework too but since Ruby is more of a higher level OO language, I was thinking if the implementation and testing side would be quicker if I had learnt that instead of doing it in Java instead?

So I can basically use any PL, since Shopify's API is very simple due to it following the RESTful web services. I just implement my webapp outside of shopify and connect it with Shopify's API so that the app communicates with stuff inside my shop. That's pretty much it right?
 

0 Likes
heyhost
Shopify Partner
106 1 16

Totally correct. Personally I use php 7 and Laravel framework.  Whatever you use you will be crunching through the same json api responses.

My enthusiasm greatly exceeds my talent.
0 Likes
Lavissharma
New Member
1 0 0

Very cool to hear that you are building a Shopify application for your project and I think it is not necessary to use ruby for your project you can use Laravel framework for better performance and better securities. For further assistance I can suggest you best online learning portal for your reference. You can find many such portal on Google as well.

0 Likes