Favor
Brief Description of Project
Favor is an app that helps college students get things done by providing a non-monetary economy where students can trade skills for services. Students offer Favors (services) that other students can sign-up for. In doing so, they earn Favors, which they can use to "buy" Favors from other students. The goal of our app is to increase student interaction and improve student relations by valuing all forms of work and providing service options for those who cannot afford professional services.
Our Tech Stack and Language
We used Django, a Python web framework, for our project. Our frontend was built using HTML, CSS, and JavaScript, while our backend was built using Python.
5 Most Helpful Resources for Getting Started
There are a plethora of resources online for learning Django. After trying many tutorials and 'Getting Started' pages, these are the resources we recommend.
- Writing your first Django app, by Django
The Django documentation is a great resource for getting started, and is a tried and true starting point for total beginners. It teaches you the Django framework by taking you through the process of building a Django web app (which I would argue is the best way to learn Django).
- Mozilla's Django Introduction
Mozilla has a great Django tutorial that is similar to the tutorial by Django, in that it takes you through the steps of building a Django web application. It is different in that it is straight to the point (only includes pertinent information about building the application) and is easier to navigate (11 webpages, each with a relevant title, e.g. "Django Tutorial Part 9: Working with Forms" vs Django's "Writing your first Django app, part 7").
- Simple is Better than Complex
SIBTC is a great resource that provides many articles written about more advanced Django topics with examples of each. Each article is easy to understand, yet provides enough detail about the topic to finish developing what you need to implement. I have never left this website without a solution to my Django problems. Thanks Vitor!
- Corey Schafer's YouTube Tutorials
For those that are more inclined towards video tutorials, Corey Schafer is an excellent place to go. Whether you want to learn how to do something very specific in Django, or you want a fully-fledged "Let's build a Django web app" tutorial, Schafer's YouTube channel has the videos to watch. In addition to Django tutorials, Schafer is a great video resource for all things Python.
- freeCodeCamp Django Tutorial
FreeCodeCamp is a great resource for learning coding online. If you have an open 4 hours on your hands, they have a full 4-hour long Django course on YouTube to watch. They offer many courses on other frameworks as well, all for free. Check out their website.
UML Diagram
Our project follows the MVT (Model View Template) software design pattern, and common pattern for Django web applications. The Model helps access objects stored in our database, and serves as our data access layer. The Template is a collection of HTML files (with CSS and JS) that serves as our UI layer. The View contains our business logic, which interacts with our models and renders different templates.
Below is a UML graph that models our MVT control flow. Our Model layer is in green, our Template layer is in blue, and our View layer is in yellow.
Task Flow Diagram
The following is a task flow diagram for a user of our application.