CollegeDiveInmaking 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
Introductionwhat is project about
Aim of the Project■ becoming de-facto destination for college  students■ taking pain of marketing from Event  Organisers■ ...
What we offer now:■ event listings on basis of:   ○ Popularity   ○ Campuses   ○ Types■ academics notes available to downlo...
Some stats■ more than 2000 monthly visitors■ have Alexa ranking of 65000 in India■ more than 100 events listed in less tha...
Architecturewhat and how we use softwares
Our Software Stack■   Web Server - Nginx with Gunicorn■   OS - Linux (debian)■   Programming Language - Python■   Web Fram...
Why Linux and Nginx?■ Linux:  ○   Customizable (open source)  ○   Free  ○   Easy Integration  ○   Availability■ Nginx:  ○ ...
Python!!! No PHP?■ we love Python■ PHP is from Iron Age of Internet■ writing PHP is like writing static site:   ○ with eve...
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 databas...
Git and pip■ Git  ○ is a distributed revision control  ○ keep us in sync  ○ full control over code■ pip  ○ manages python ...
Timelinewhat was done when
Planning Phase April 12■   brainstormed and discussion on ideas■   coming up with this■   discussion about core features■ ...
Initial Dev May 12■ made html mockups■ discussed softwares to use■ started with learning Django  ○ two of knew python prev...
Development Phase June 12■   rethink about core idea■   focused fully on college events■   started fresh with Django■   ma...
Final Testing July 12■   made signup for College Representatives■   included JQuery and other JavaScript■   bugs for older...
Workinghow it all works
Code Structure■   manage.py■   wsgi.py■   settings.py■   urls.py■   views.py■   home app    ○ models.py    ○ views.py    ○...
Life of a Request           1              2                                  Gunicorn               Nginx           8    ...
Inside working - Urls.py■ urls.py > gate keeper and receptionist■ decides which function to call for request■ uses Regular...
Inside working - Views.py■   are simple python functions■   have all the function for app■   check request type and proces...
Inside working - Models.py■   defines database for app■   uses python classes to represent db tables■   python method make...
Inside working - Templates■ mini-language for defining the user-facing  layer of app■ separate logic and presentationSteps...
Where is Nginx here?■ with help from gunicorn and wsgi.py,  changes request in format python can  understand■ serve static...
Deploymenthow application goes live
Heroku for hosting■ heroku provides deployment with git■ just one command and application deployed  git push heroku master...
Experiencewhat we learn from all this
Technical learning■ Python - widely used language in:  ○   mathematics  ○   scientific computing  ○   servers  ○   scripti...
Entrepreneurial learning■   what it takes to run Web App■   marketing a product■   managing users and people■   talking wi...
CollegeDive.InbyCodesters Group           Any Questions?
Thank You
Upcoming SlideShare
Loading in …5
×

CollegeDiveIn presentation

605 views

Published on

Short presentation on CDI, technology it uses and how we made it

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
605
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CollegeDiveIn presentation

  1. 1. CollegeDiveInmaking college life more social
  2. 2. Team■ Karambir Singh Nain■ Mayank Jain■ Aksh Vashishth■ Mohit Moudgil■ Naman Sharma
  3. 3. What we will discuss■ Introduction■ Architechture■ Timeline■ Working■ Deployment■ Experience
  4. 4. Introductionwhat is project about
  5. 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. 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. 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. 8. Architecturewhat and how we use softwares
  9. 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. 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. 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. 12. What is Django■ is a Python Web-Framework■ is not like Wordpress or CMS■ makes web-app development pleasurable
  13. 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. 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
  15. 15. Timelinewhat was done when
  16. 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. 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. 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. 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
  20. 20. Workinghow it all works
  21. 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. 22. Life of a Request 1 2 Gunicorn Nginx 8 3 manage.py 7 4Template views.py urls.py s 6 5 and
  23. 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. 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. 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. 26. Inside working - Templates■ mini-language for defining the user-facing layer of app■ separate logic and presentationSteps:■ 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. 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
  28. 28. Deploymenthow application goes live
  29. 29. Heroku for hosting■ heroku provides deployment with git■ just one command and application deployed git push heroku master■ uses procfile for settingsweb: gunicorn cdi.wsgi -b 0.0.0.0:$PORT
  30. 30. Experiencewhat we learn from all this
  31. 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. 32. Entrepreneurial learning■ what it takes to run Web App■ marketing a product■ managing users and people■ talking with companies and organizations■ team work
  33. 33. CollegeDive.InbyCodesters Group Any Questions?
  34. 34. Thank You

×