Heroku deployment url: https://bwa-project.herokuapp.com
- Usernames:
admin1
andadmin2
.
- Usernames:
normaluser1
,normaluser2
,normaluser3
,normaluser4
,normaluser5
Before seeing the site map, there are two important notices:
- All pages after logging in can go back to the profile view (there will be a button to go back to that view).
- The web application will present a navigation bar that will help to jump between pages easily - that is hard to present in the site map.
Here is the site map (drew during the second project meeting):
We are going to have 7 Django apps:
- Users:
/users
This app will manage users of the project, registration, authentication, email verification and password reset. - Profile:
/profile
This app will manage user's statuses in profile, users' friend list. - Gravatar: This app is an utility app that fetch profile pictures from Gravatar based on user's email
- Status:
/status
. This app will manage user's statuses in profile - Discussions:
/discussions
This app will manage user's discussions - Events:
/events
This app will manage user's events - Notifications (Optional):
/notifications
This app will manage user's notifications
During the first meeting we have already defined a map for models in the app.
Update: If user deletes himself from the database, all his/her contents (discussions, statuses, friendships, ...) will be deleted
- For
users
app, we will have:
/
: home page/login
: Login page/logout
: Logout page/about
: Some info about our group/register
: Registration page
- For
profile
app, we will have:
/profile
: main page of profile that will show user's statuses/profile/friends
: Showing friend lists and manage friend list
- For
discussions
app, we will have:
/discussions
: main page that shows all discussions that can be seen from that user in a time order./discussions/new
: view for adding a new discussion./discussions/:id
: view a single discussion.
- For
events
app, we will have:
/events
: main page that shows all events that can be seen from that user in a time order./events/new
: view for adding a new event./events/:id
: view a single event.
- For
notifications
app, we will have:
/notifications
: this is not really accessible from user, this route will return results that list user's notifications.
-
Views: Every uri defined above will have its own view. The parameter has been defined in the uri itself, which is
:<parameter_name>
. All above views will render a template, except for thenotifications
route, it will render a JSON response for the front-end to do AJAX to fetch notifications. -
Templates: N/A
As mentioned in the group information, here is the heroku deployment url: https://bwa-project.herokuapp.com
Hai will be responsible for project testing.
We will be following Test Driven Development, which we have a convention that each team member will submit a merge request for every change to master
. In order for it to be merged, Hai will help to write unit tests for the features.
We will also be doing manual testing, that is using the app as a normal user and see if anything behaves unexpectedly.
As mentioned in the section of mandatory and plus features, all assignees for each features have been defined.
Each member will commit at least 10 hours of work each week.
Hai as the project team leader will be responsible for gitlab issues creation and assigning.
The Django project in this repo (bwa2018djangoproject), was created for the groups using Heroku Django Starter Template. The information about it left here for educational purposes. The groups are free to remove this text and all the text below it from this file.
An utterly fantastic project starter template for Django 2.0.
- Production-ready configuration for Static Files, Database Settings, Gunicorn, etc.
- Enhancements to Django's static file serving functionality via WhiteNoise.
- Latest Python 3.6 runtime environment.
To use this project, follow these steps:
- Create your working environment.
- Install Django (
$ pipenv install django
) - Create a new project using this template
Using this template to create a new Django app is easy::
$ django-admin.py startproject --template=https://github.com/heroku/heroku-django-template/archive/master.zip --name=Procfile helloworld
(If this doesn't work on windows, replace django-admin.py
with django-admin
)
You can replace helloworld
with your desired project name.
$ git init
$ git add -A
$ git commit -m "Initial commit"
$ heroku create
$ git push heroku master
$ heroku run python manage.py migrate
See also, a ready-made application, ready to deploy.