It's an app for the UC Bearcat Bands
The way things are currently swinging, we need a database-backed web API. The current play is with this one:
- Django - A "batteries-included" python web-framework
- To make coding a REST API easier, Djano-Rest-Framework is hella nice.
- P.S., the way the Django project is currently structured is not something I'm strongly attached to and I'm willing to move the "app" folder (
bands) outside of the project folder (
ucbearcatbandsproject) if we determine that'd be easier to work with.
For frontends, we are doing two UIs:
- A traditional web application. We currently have a demo written in Blazor, a framework for making Single-Page Applications (SPAs) using C#/.NET. We have other options:
- Django? - Django Templates would allow for us to create a web-frontend which tightly integrates with Django, but not Django-Rest-Framework. As a result, we wouldn't be able to use the REST API if we roll with this for the site, thus we'd essentially need to maintain two APIs. However, it does integrate cleanly otherwise.
- Angular - A Typescript Framework for web applications; Mature and tested. Supported by Google Open Source
- React - "A JS library for building UIs" - Supported by Facebook Open Source
- Vue.JS - "Approachable, versatile, performant " - Newcomer of the trio, but it does have the most momentum. Fully community supported, w/o the grace of a core dev team of an existing corporation.
- An iOS only mobile app
- Details about our configuration / setup are below.
Set up Information
The Django Backend
- Make sure you have python 3.7 installed.
pipto facilitate package downloads.
- In the cloned directory for the backend (the one with
pipenv installto grab all the dependencies.
pipenv shellto activate the virtual environment you just made with the above line.
- If there isn't a
db.sqlite3in the directory, run the following command now:
python manage.py migrate
- Noodle away
The Blazor Frontend Demo
- Install Visual Studio 2019 (version >= 16.1) and make sure to include the
ASP.NET and web developmentworkload during installation.
- Install NET.Core 3.0 Preview 5
- Install this extension to enable Blazor support.
- Execute the following command in a terminal window (powershell, cmd, etc):
dotnet new -i Microsoft.AspNetCore.Blazor.Templates::3.0.0-preview5-19227-01
- Back in VS now, enable usage of .NET Core SDK previews (
Use previews ...)
- Pop open that solution and get cracking!
The "Actual" Fronted
iOS App Setup
Since the iOS app is really just going to be a frontend wrapper for our web API, I'll go ahead and suggest you set up a backend server. The app won't really do much if it can't ping that.
After you've done that, do the following to work on the iOS app:
- Have a Mac (or run macOS)
- Download the Xcode IDE.
- Install CocoaPods, used as a package manager in the same vein as
- Inside the "MobileApp" directory, you'll find a file named
Podfile; this specifies our dependencies. Run
pod installin the terminal to install them.
- Open the
MobileApp.xcworkspacefile in Xcode, and everything should be ready to go. Note that you don't use
MobileApp.xcodeproj, it's not tied into the CocoaPods dependencies.
Ben has some lingering concerns about code signing (requires an iCloud account and he's set it up to use his), but this should more or less work. If you run into issues consult Ben.