SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
CollegeDiveIn
making college life more social
Team


■ Karambir Singh Nain
■ Mayank Jain
■ Aksh Vashishth
■ Mohit Moudgil
■ Naman Sharma
What we will discuss


■   Introduction
■   Architechture
■   Timeline
■   Working
■   Deployment
■   Experience
Introduction
what is project about
Aim of the Project


■ becoming de-facto destination for college
  students
■ taking pain of marketing from Event
  Organisers
■ creating a common platform for students,
  organisers and Brands
What we offer now:


■ event listings on basis of:
   ○ Popularity
   ○ Campuses
   ○ Types
■ academics notes available to download
■ platform for college news/blog
■ college representatives can add, update
  college events, notes
Some stats

■ more than 2000 monthly visitors
■ have Alexa ranking of 65000 in India
■ more than 100 events listed in less than 2
  months
■ notes downloaded 950 times
■ is online media partner for Oasis - Cultural
  fest of BITS pilani
Architecture
what and how we use softwares
Our Software Stack


■   Web Server - Nginx with Gunicorn
■   OS - Linux (debian)
■   Programming Language - Python
■   Web Framework - Django
■   Database - PostgreSQL
■   Other Dependencies - Git, pip, Twitter Bootstrap,
    JQuery, Facebook Graph API.
Why Linux and Nginx?

■ Linux:
  ○   Customizable (open source)
  ○   Free
  ○   Easy Integration
  ○   Availability
■ Nginx:
  ○ Lightweight
  ○ Serve Static files faster than Apache
  ○ Integrate with Python WSGI easily
Python!!! No PHP?


■ we love Python
■ PHP is from Iron Age of Internet
■ writing PHP is like writing static site:
   ○ with every page we see, there is one PHP file
     attached
■ python is more Dynamic
■ work as expected (unlike PHP)
What is Django




■ is a Python Web-Framework
■ is not like Wordpress or CMS
■ makes web-app development pleasurable
Django More...

■ Models
  ○ Database - store data
  ○ Integrate with SQLite, MySQL, PostgreSQL, Oracle
  ○ Have its on database API
■ Template
  ○ highly customizable templating language
  ○ differentiate logic from presentation
■ Views
  ○ python functions to respond tp requests
  ○ handle what visitor see
Git and pip


■ Git
  ○ is a distributed revision control
  ○ keep us in sync
  ○ full control over code
■ pip
  ○ manages python packages
  ○ switching between development and production
    makes easy
Timeline
what was done when
Planning Phase April '12



■   brainstormed and discussion on ideas
■   coming up with this
■   discussion about core features
■   made diagrams and wireframes of app
Initial Dev May '12

■ made html mockups
■ discussed softwares to use
■ started with learning Django
  ○ two of knew python previously, so started django
  ○ others started with python
■ two weeks, we produced a crude
■ tested it a bit
■ Released Alpha Version
Development Phase June '12


■   rethink about core idea
■   focused fully on college events
■   started fresh with Django
■   made PostgreSQL database ourself
■   redesigned with Bootstrap
■   released version 1.0 on Heroku
Final Testing July '12



■   made signup for College Representatives
■   included JQuery and other JavaScript
■   bugs for older browsers fixed
■   made available for mobile browsers
Working
how it all works
Code Structure
■   manage.py
■   wsgi.py
■   settings.py
■   urls.py
■   views.py
■   home app
    ○ models.py
    ○ views.py
    ○ admin.py
■ static files
■ templates
Life of a Request
           1              2
                                  Gunicorn
               Nginx
           8                                3

                                  manage.py
                     7

                                            4

Template       views.py           urls.py
   s       6                  5
  and
Inside working - Urls.py

■ urls.py > gate keeper and receptionist
■ decides which function to call for request
■ uses Regular Expressions
■ raises 404 error if no match found
■ can call templates directly
■ have nothing to do with request type(GET or
  POST)
■ passes extra parameters to view function
Inside working - Views.py


■   are simple python functions
■   have all the function for app
■   check request type and process it
■   can query database if needed
■   can generate html, css, image, pdf, xml, json
    output
Inside working - Models.py



■   defines database for app
■   uses python classes to represent db tables
■   python method makes them more useful
■   gives db-api to query database in pythonic
    way
Inside working - Templates
■ mini-language for defining the user-facing
  layer of app
■ separate logic and presentation

Steps:
■ receives input from views as data
■ fill its file with data
■ import another templates if any
■ send back output to view function for display
Where is Nginx here?



■ with help from gunicorn and wsgi.py,
  changes request in format python can
  understand
■ serve static files
■ store logs for errors and history
Deployment
how application goes live
Heroku for hosting

■ heroku provides deployment with git
■ just one command and application deployed

  git push heroku master

■ uses procfile for settings

web: gunicorn cdi.wsgi -b 0.0.0.0:$PORT
Experience
what we learn from all this
Technical learning
■ Python - widely used language in:
  ○   mathematics
  ○   scientific computing
  ○   servers
  ○   scripting
  ○   game development
  ○   desktop and web apps
■ Django - a framework for perfectionists with
  deadlines
  ○ simple to learn
  ○ can develop large scale application
  ○ secure and robust
Entrepreneurial learning



■   what it takes to run Web App
■   marketing a product
■   managing users and people
■   talking with companies and organizations
■   team work
CollegeDive.In
by
Codesters Group



           Any Questions?
Thank You

Weitere ähnliche Inhalte

Was ist angesagt?

Create.js - Inline editing for any website
Create.js - Inline editing for any websiteCreate.js - Inline editing for any website
Create.js - Inline editing for any websiteHenri Bergius
 
Decoupling Content Management with Create.js
Decoupling Content Management with Create.jsDecoupling Content Management with Create.js
Decoupling Content Management with Create.jsHenri Bergius
 
Decoupling Content Management
Decoupling Content ManagementDecoupling Content Management
Decoupling Content ManagementHenri Bergius
 
New layout models on the Web (Mobile World Congress 2014)
New layout models on the Web (Mobile World Congress 2014)New layout models on the Web (Mobile World Congress 2014)
New layout models on the Web (Mobile World Congress 2014)Igalia
 
Devoxx France - Web Components, Polymer et Material Design
Devoxx France -  Web Components, Polymer et Material DesignDevoxx France -  Web Components, Polymer et Material Design
Devoxx France - Web Components, Polymer et Material DesignHoracio Gonzalez
 
Hybrid Mobile Apps | Ionic & AngularJS
Hybrid Mobile Apps | Ionic & AngularJSHybrid Mobile Apps | Ionic & AngularJS
Hybrid Mobile Apps | Ionic & AngularJSHamdi Hmidi
 
Create - Decoupled CMS interface
Create - Decoupled CMS interfaceCreate - Decoupled CMS interface
Create - Decoupled CMS interfaceHenri Bergius
 
JavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkJavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkAlive Kuo
 
Modern web application devlopment workflow
Modern web application devlopment workflowModern web application devlopment workflow
Modern web application devlopment workflowHamdi Hmidi
 
Adobe Flash Professional with CreateJS
Adobe Flash Professional with CreateJSAdobe Flash Professional with CreateJS
Adobe Flash Professional with CreateJSJoseph Labrecque
 
Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Stefan Adolf
 
Decoupling Content Management with Create.js and PHPCR
Decoupling Content Management with Create.js and PHPCRDecoupling Content Management with Create.js and PHPCR
Decoupling Content Management with Create.js and PHPCRHenri Bergius
 
Server and client rendering of single page apps
Server and client rendering of single page appsServer and client rendering of single page apps
Server and client rendering of single page appsThomas Heymann
 
Single page apps a bleeding edge new concept or a revived old one?
Single page apps   a bleeding edge new concept or a revived old one?Single page apps   a bleeding edge new concept or a revived old one?
Single page apps a bleeding edge new concept or a revived old one?Omer Dawelbeit
 
Architektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausArchitektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausWomen in Technology Poland
 
CreateJS hackathon in Zurich
CreateJS hackathon in ZurichCreateJS hackathon in Zurich
CreateJS hackathon in ZurichHenri Bergius
 
Midgard & Nemein - when an open source project and company evolve together
Midgard & Nemein - when an open source project and company evolve togetherMidgard & Nemein - when an open source project and company evolve together
Midgard & Nemein - when an open source project and company evolve togetherHenri Bergius
 
Angular.js in XPages
Angular.js in XPagesAngular.js in XPages
Angular.js in XPagesMark Roden
 
Build Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponentsBuild Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponentsGil Fink
 

Was ist angesagt? (20)

Create.js - Inline editing for any website
Create.js - Inline editing for any websiteCreate.js - Inline editing for any website
Create.js - Inline editing for any website
 
Decoupling Content Management with Create.js
Decoupling Content Management with Create.jsDecoupling Content Management with Create.js
Decoupling Content Management with Create.js
 
Decoupling Content Management
Decoupling Content ManagementDecoupling Content Management
Decoupling Content Management
 
New layout models on the Web (Mobile World Congress 2014)
New layout models on the Web (Mobile World Congress 2014)New layout models on the Web (Mobile World Congress 2014)
New layout models on the Web (Mobile World Congress 2014)
 
Devoxx France - Web Components, Polymer et Material Design
Devoxx France -  Web Components, Polymer et Material DesignDevoxx France -  Web Components, Polymer et Material Design
Devoxx France - Web Components, Polymer et Material Design
 
Hybrid Mobile Apps | Ionic & AngularJS
Hybrid Mobile Apps | Ionic & AngularJSHybrid Mobile Apps | Ionic & AngularJS
Hybrid Mobile Apps | Ionic & AngularJS
 
Create - Decoupled CMS interface
Create - Decoupled CMS interfaceCreate - Decoupled CMS interface
Create - Decoupled CMS interface
 
JavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web frameworkJavascriptMVC: Another choice of web framework
JavascriptMVC: Another choice of web framework
 
Modern web application devlopment workflow
Modern web application devlopment workflowModern web application devlopment workflow
Modern web application devlopment workflow
 
Adobe Flash Professional with CreateJS
Adobe Flash Professional with CreateJSAdobe Flash Professional with CreateJS
Adobe Flash Professional with CreateJS
 
Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019Gatsby (Code.Talks) 2019
Gatsby (Code.Talks) 2019
 
Decoupling Content Management with Create.js and PHPCR
Decoupling Content Management with Create.js and PHPCRDecoupling Content Management with Create.js and PHPCR
Decoupling Content Management with Create.js and PHPCR
 
Server and client rendering of single page apps
Server and client rendering of single page appsServer and client rendering of single page apps
Server and client rendering of single page apps
 
Single page apps a bleeding edge new concept or a revived old one?
Single page apps   a bleeding edge new concept or a revived old one?Single page apps   a bleeding edge new concept or a revived old one?
Single page apps a bleeding edge new concept or a revived old one?
 
Architektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan KrausArchitektura html, css i javascript - Jan Kraus
Architektura html, css i javascript - Jan Kraus
 
CreateJS hackathon in Zurich
CreateJS hackathon in ZurichCreateJS hackathon in Zurich
CreateJS hackathon in Zurich
 
Midgard & Nemein - when an open source project and company evolve together
Midgard & Nemein - when an open source project and company evolve togetherMidgard & Nemein - when an open source project and company evolve together
Midgard & Nemein - when an open source project and company evolve together
 
Angular.js in XPages
Angular.js in XPagesAngular.js in XPages
Angular.js in XPages
 
Build Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponentsBuild Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponents
 
Web fonts FTW
Web fonts FTWWeb fonts FTW
Web fonts FTW
 

Ähnlich wie CollegeDiveIn presentation

python full stack course in hyderabad...
python full stack course in hyderabad...python full stack course in hyderabad...
python full stack course in hyderabad...sowmyavibhin
 
python full stack course in hyderabad...
python full stack course in hyderabad...python full stack course in hyderabad...
python full stack course in hyderabad...sowmyavibhin
 
Use open source software to develop ideas at work
Use open source software to develop ideas at workUse open source software to develop ideas at work
Use open source software to develop ideas at workSammy Fung
 
Contributing to Apache Projects and Making Profits
Contributing to Apache Projects and Making ProfitsContributing to Apache Projects and Making Profits
Contributing to Apache Projects and Making ProfitsHenry Saputra
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneursRodrigo Gil
 
Python in Industry
Python in IndustryPython in Industry
Python in IndustryDharmit Shah
 
Practical automation for beginners
Practical automation for beginnersPractical automation for beginners
Practical automation for beginnersSeoweon Yoo
 
When JHipster meets Microsoft-JHipster and Microsoft products
When JHipster meets Microsoft-JHipster and Microsoft productsWhen JHipster meets Microsoft-JHipster and Microsoft products
When JHipster meets Microsoft-JHipster and Microsoft productsAnthony Viard
 
JIO and WebViewers: interoperability for Javascript and Web Applications
JIO and WebViewers: interoperability  for Javascript and Web ApplicationsJIO and WebViewers: interoperability  for Javascript and Web Applications
JIO and WebViewers: interoperability for Javascript and Web ApplicationsXWiki
 
PyCon Poland 2016: Maintaining a high load Python project: typical mistakes
PyCon Poland 2016: Maintaining a high load Python project: typical mistakesPyCon Poland 2016: Maintaining a high load Python project: typical mistakes
PyCon Poland 2016: Maintaining a high load Python project: typical mistakesViach Kakovskyi
 
Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How Nikhil Agrawal
 
An overview of data and web-application development with Python
An overview of data and web-application development with PythonAn overview of data and web-application development with Python
An overview of data and web-application development with PythonSivaranjan Goswami
 
Web development django.pdf
Web development django.pdfWeb development django.pdf
Web development django.pdfKomalSaini178773
 
Django best practices
Django best practicesDjango best practices
Django best practicesAdam Haney
 
CodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.comCodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.comChristopher Cubos
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsFedir RYKHTIK
 
Intro to Web Development Using Python and Django
Intro to Web Development Using Python and DjangoIntro to Web Development Using Python and Django
Intro to Web Development Using Python and DjangoChariza Pladin
 
Google Cloud: Next'19 Extended Hanoi
Google Cloud: Next'19 Extended HanoiGoogle Cloud: Next'19 Extended Hanoi
Google Cloud: Next'19 Extended HanoiGCPUserGroupVietnam
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to DjangoKnoldus Inc.
 

Ähnlich wie CollegeDiveIn presentation (20)

divyanshBajaj.pptx
divyanshBajaj.pptxdivyanshBajaj.pptx
divyanshBajaj.pptx
 
python full stack course in hyderabad...
python full stack course in hyderabad...python full stack course in hyderabad...
python full stack course in hyderabad...
 
python full stack course in hyderabad...
python full stack course in hyderabad...python full stack course in hyderabad...
python full stack course in hyderabad...
 
Use open source software to develop ideas at work
Use open source software to develop ideas at workUse open source software to develop ideas at work
Use open source software to develop ideas at work
 
Contributing to Apache Projects and Making Profits
Contributing to Apache Projects and Making ProfitsContributing to Apache Projects and Making Profits
Contributing to Apache Projects and Making Profits
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneurs
 
Python in Industry
Python in IndustryPython in Industry
Python in Industry
 
Practical automation for beginners
Practical automation for beginnersPractical automation for beginners
Practical automation for beginners
 
When JHipster meets Microsoft-JHipster and Microsoft products
When JHipster meets Microsoft-JHipster and Microsoft productsWhen JHipster meets Microsoft-JHipster and Microsoft products
When JHipster meets Microsoft-JHipster and Microsoft products
 
JIO and WebViewers: interoperability for Javascript and Web Applications
JIO and WebViewers: interoperability  for Javascript and Web ApplicationsJIO and WebViewers: interoperability  for Javascript and Web Applications
JIO and WebViewers: interoperability for Javascript and Web Applications
 
PyCon Poland 2016: Maintaining a high load Python project: typical mistakes
PyCon Poland 2016: Maintaining a high load Python project: typical mistakesPyCon Poland 2016: Maintaining a high load Python project: typical mistakes
PyCon Poland 2016: Maintaining a high load Python project: typical mistakes
 
Open source, What | Why | How
Open source, What | Why | How Open source, What | Why | How
Open source, What | Why | How
 
An overview of data and web-application development with Python
An overview of data and web-application development with PythonAn overview of data and web-application development with Python
An overview of data and web-application development with Python
 
Web development django.pdf
Web development django.pdfWeb development django.pdf
Web development django.pdf
 
Django best practices
Django best practicesDjango best practices
Django best practices
 
CodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.comCodeIgniter - PHP MVC Framework by silicongulf.com
CodeIgniter - PHP MVC Framework by silicongulf.com
 
DevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and ProjectsDevOps for TYPO3 Teams and Projects
DevOps for TYPO3 Teams and Projects
 
Intro to Web Development Using Python and Django
Intro to Web Development Using Python and DjangoIntro to Web Development Using Python and Django
Intro to Web Development Using Python and Django
 
Google Cloud: Next'19 Extended Hanoi
Google Cloud: Next'19 Extended HanoiGoogle Cloud: Next'19 Extended Hanoi
Google Cloud: Next'19 Extended Hanoi
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 

CollegeDiveIn presentation

  • 2. Team ■ Karambir Singh Nain ■ Mayank Jain ■ Aksh Vashishth ■ Mohit Moudgil ■ Naman Sharma
  • 3. What we will discuss ■ Introduction ■ Architechture ■ Timeline ■ Working ■ Deployment ■ Experience
  • 5. Aim of the Project ■ becoming de-facto destination for college students ■ taking pain of marketing from Event Organisers ■ creating a common platform for students, organisers and Brands
  • 6. What we offer now: ■ event listings on basis of: ○ Popularity ○ Campuses ○ Types ■ academics notes available to download ■ platform for college news/blog ■ college representatives can add, update college events, notes
  • 7. Some stats ■ more than 2000 monthly visitors ■ have Alexa ranking of 65000 in India ■ more than 100 events listed in less than 2 months ■ notes downloaded 950 times ■ is online media partner for Oasis - Cultural fest of BITS pilani
  • 8. Architecture what and how we use softwares
  • 9. Our Software Stack ■ Web Server - Nginx with Gunicorn ■ OS - Linux (debian) ■ Programming Language - Python ■ Web Framework - Django ■ Database - PostgreSQL ■ Other Dependencies - Git, pip, Twitter Bootstrap, JQuery, Facebook Graph API.
  • 10. Why Linux and Nginx? ■ Linux: ○ Customizable (open source) ○ Free ○ Easy Integration ○ Availability ■ Nginx: ○ Lightweight ○ Serve Static files faster than Apache ○ Integrate with Python WSGI easily
  • 11. Python!!! No PHP? ■ we love Python ■ PHP is from Iron Age of Internet ■ writing PHP is like writing static site: ○ with every page we see, there is one PHP file attached ■ python is more Dynamic ■ work as expected (unlike PHP)
  • 12. What is Django ■ is a Python Web-Framework ■ is not like Wordpress or CMS ■ makes web-app development pleasurable
  • 13. Django More... ■ Models ○ Database - store data ○ Integrate with SQLite, MySQL, PostgreSQL, Oracle ○ Have its on database API ■ Template ○ highly customizable templating language ○ differentiate logic from presentation ■ Views ○ python functions to respond tp requests ○ handle what visitor see
  • 14. Git and pip ■ Git ○ is a distributed revision control ○ keep us in sync ○ full control over code ■ pip ○ manages python packages ○ switching between development and production makes easy
  • 16. Planning Phase April '12 ■ brainstormed and discussion on ideas ■ coming up with this ■ discussion about core features ■ made diagrams and wireframes of app
  • 17. Initial Dev May '12 ■ made html mockups ■ discussed softwares to use ■ started with learning Django ○ two of knew python previously, so started django ○ others started with python ■ two weeks, we produced a crude ■ tested it a bit ■ Released Alpha Version
  • 18. Development Phase June '12 ■ rethink about core idea ■ focused fully on college events ■ started fresh with Django ■ made PostgreSQL database ourself ■ redesigned with Bootstrap ■ released version 1.0 on Heroku
  • 19. Final Testing July '12 ■ made signup for College Representatives ■ included JQuery and other JavaScript ■ bugs for older browsers fixed ■ made available for mobile browsers
  • 21. Code Structure ■ manage.py ■ wsgi.py ■ settings.py ■ urls.py ■ views.py ■ home app ○ models.py ○ views.py ○ admin.py ■ static files ■ templates
  • 22. Life of a Request 1 2 Gunicorn Nginx 8 3 manage.py 7 4 Template views.py urls.py s 6 5 and
  • 23. Inside working - Urls.py ■ urls.py > gate keeper and receptionist ■ decides which function to call for request ■ uses Regular Expressions ■ raises 404 error if no match found ■ can call templates directly ■ have nothing to do with request type(GET or POST) ■ passes extra parameters to view function
  • 24. Inside working - Views.py ■ are simple python functions ■ have all the function for app ■ check request type and process it ■ can query database if needed ■ can generate html, css, image, pdf, xml, json output
  • 25. Inside working - Models.py ■ defines database for app ■ uses python classes to represent db tables ■ python method makes them more useful ■ gives db-api to query database in pythonic way
  • 26. Inside working - Templates ■ mini-language for defining the user-facing layer of app ■ separate logic and presentation Steps: ■ receives input from views as data ■ fill its file with data ■ import another templates if any ■ send back output to view function for display
  • 27. Where is Nginx here? ■ with help from gunicorn and wsgi.py, changes request in format python can understand ■ serve static files ■ store logs for errors and history
  • 29. Heroku for hosting ■ heroku provides deployment with git ■ just one command and application deployed git push heroku master ■ uses procfile for settings web: gunicorn cdi.wsgi -b 0.0.0.0:$PORT
  • 30. Experience what we learn from all this
  • 31. Technical learning ■ Python - widely used language in: ○ mathematics ○ scientific computing ○ servers ○ scripting ○ game development ○ desktop and web apps ■ Django - a framework for perfectionists with deadlines ○ simple to learn ○ can develop large scale application ○ secure and robust
  • 32. Entrepreneurial learning ■ what it takes to run Web App ■ marketing a product ■ managing users and people ■ talking with companies and organizations ■ team work