These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
- Set up a new virtualenv directory.
virtualenv .
source bin/activate
Pull the repository
The project is implemented on
- Django 1.8
- Python 2.7
- Postgres
The requirements.txt file contains the python packages which needs to be installed.
pip install -r /Master/requirements.txt
- Install Postgres App. A quick google search will do.
- install postgres packages using Pip
pip install postgres
pip install psycopg2-binary
- Notes (Application)
- Master (Web Framework)
Currently the Project has these Api's in working.
INDEX PAGE: > http://127.0.0.1:8000/Notes/index/
1. See all tasks Grouped by Label (Todo, Doing, Done)
> GET via Postman via /Notes/tasks
2. Post a new Task
> POST via Postman via /Notes/tasks/
3. Update a Task (Change Anything except Author)
> PUT via Postman via /Notes/tasks/?id=
4. Delete a Task
> DELETE via Postman via /Notes/tasks/?id=
5. See a Task by it's ID
> /Notes/tasks/?id=
5. See All Comments Ordered by Task ID
> GET via Postman via /Notes/comments
6. Post a new comment given Task Id, Author and the Comment Text
> POST via Postman via
7. Update text on a comment given Comment ID
> PUT via Postman via /Notes/comments/?id=
Username and Active Status can be changed later.
userId = models.AutoField(primary_key=True)
username = models.CharField(max_length=20, blank=False)
createdOn = models.DateTimeField(auto_now_add=True)
isActive = models.BooleanField(default=True)
Has a Foriegn Key Field to User Table.
- FIELDS THAT CANNOT BE BLANK = Title. Label. CreatedBy. DueDate
- CAN BE BLANK = Description. Color. Comments. Attachment
LABEL_LIST = (
('1', 'Todo'),
('2', 'Doing'),
('3', 'Done'),
)
COLOURS = (
('#808080','Gray'),
('#000000','Black'),
('#FF0000','Red'),
('#0000FF','Blue')
)
taskId = AutoField(primary_key=True)
title = CharField(max_length = 30, blank=False)
description = CharField(max_length = 100, blank=True)
label = CharField(max_length=1, choices=LABEL_LIST, blank=False)
color = CharField(max_length=7, choices=COLOURS, blank=True) #STORE A HEX FIELD.
attachment = FileField(upload_to='attachments', blank=True)
comments = CharField(max_length=255, blank=True)
createdBy = models.ForeignKey(User, null=True)
dueDate = DateField(null=False)
Has 2 Foreign Key Fields - To Comments Table and User Table.
- FIELDS THAT CANNOT BE BLANK = createdBy, CommentText.
- Rest all are auto inserted.
commentId = AutoField(primary_key=True)
taskId = ForeignKey(Task, null=False, blank=False)
createdOn = DateTimeField(auto_now_add=True)
UpdatedOn = DateTimeField(auto_now_add=True)
createdBy = models.ForeignKey(User)
commentText = CharField(max_length=100, blank=False)
- The Definitive Guide to Django
- Two Scoops of Django