I think it would be best to share with a svn, don't you?

2010/6/28 djd <alex.dobjans...@gmail.com>

> This is not quite an example, but a rather complete file listing,
> along with specs.... And your question was?
> Sorry I don't want to be negative, but your post is sooooo long!
>
> On Jun 27, 9:39 pm, RAVINDER MAAN <rsmaan...@gmail.com> wrote:
> > Hello all
> >     I am working on a project which has following
> > requirements.Actually this is not real project .I am used to work with
> > relational DB`s and for future projects I want to use GAE.Through this
> > project I just want to learn best ways to use GAE .
> > It is basically implementation of discussion groups(Same as forums on
> > different sites).In the website users can discuss different topics
> > with friends and other users of the website.So I have to implement
> > following features.
> > 1) User can have many friends.
> > 2) Each user can create multiple discussions.
> > 3) Each discussion will have participant in it.
> > 4) If there is any update in the discussion then participants of the
> > discussion will get notifications.
> > 5) A user can observe his friends by adding them to his observed
> > list.if an observed person creates any discussion a notification will
> > be sent to his observers.
> > 6) Any user can view list of his observers and list of users he/she is
> > observing.
> > 7) Every user can create his profile on website .He can put his
> > picture ,title and tags.
> > 8) Every discussion will have profile on website .It will have
> > picture ,title and tags.
> > 9) Any user of the website can search people or discussions based on
> > the tags associated with the users and discussions.For example If user
> > A has 3 tags in his profile like cooking,continental and Asian and
> > user B has cooking and Asian in his tags and there is discussion named
> > D1 on website which has tags continental and chines then if any user
> > search for keyword continental user A and discussion D1 should come as
> > search results.
> > 10) If a user has created a discussion all the participants of that
> > discussion will be added to his work group.For example let us say
> > there are 4 users A,B,C,D and A creates a discussion named D1 and add
> > user B,C in it.then work group of A will have B and C in it. Work
> > group of B will have A and C in it.Work group of C will have A and B
> > in it.Now if user D creates discussion named D2 and add C as
> > participant in it then work group of D will have C in it.work group of
> > C  will now have A,B and D in it.In other words work group is list of
> > all the users with whom a user is participating in any discussion.
> >
> > Its GUI will be as below
> >  1) After log in,  user Home page will be shown.On the home page there
> > will be right bar and main content area.
> > In the right bar we will show
> >     a) His 10 recent active friends along with link to see all his
> > friends list and total count of his friends.
> >     b) His 10 recent discussions created by him with link to see list
> > of all discussions created by him and total count of his discussions.
> >     c) 10 recent discussion in which he is participant with link to
> > see list of all discussions in which he his participant and total
> > count of his discussions.
> >    d) 10 recent active user to whom he is observing along with link to
> > see list of all observed user and total count of user observed.
> >    f) 10 recent active user who are observing him along with link to
> > see list of all his observers and total count of users observing.
> >    g) 10 recent active users from his work group along with link to
> > see list of all the users in work group.(Work group is list of all the
> > participants of all discussions in which user is participating) and
> > total count of his work group.
> > In the Main Content we will have
> >   a) Initially after log in it will display all the notifications of
> > the user.
> >   b) If user click on any link in the right bar then result of that
> > action will be displayed in main content.
> >
> > To implement this I have written following entities.I do not know
> > whether it is the best way to do it .Please help me to know how we can
> > improve this .
> >
> > I am planing to keep Discussion , Message , Workgroup , Notification
> > in one entity group.
> >
> > package com.test;
> >
> > import java.io.Serializable;
> > import java.util.Date;
> > import java.util.HashSet;
> > import java.util.Set;
> >
> > import javax.jdo.annotations.IdGeneratorStrategy;
> > import javax.jdo.annotations.IdentityType;
> > import javax.jdo.annotations.PersistenceCapable;
> > import javax.jdo.annotations.Persistent;
> > import javax.jdo.annotations.PrimaryKey;
> >
> > import com.google.appengine.api.datastore.Key;
> >
> > @PersistenceCapable(identityType = IdentityType.APPLICATION)
> > public class Discussion implements Serializable{
> >         private static final long serialVersionUID =
> -9115235415573154018L;
> >
> >         @PrimaryKey
> >     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> >     private Key key;
> >
> >     @Persistent
> >     private String title;
> >
> >     @Persistent
> >     private String createdBy;
> >
> >     @Persistent
> >     private Date creationDate;
> >
> >         @Persistent
> >         private String profileImagePath;
> >
> >         @Persistent(defaultFetchGroup = "true")
> >         private Set<String> tags;
> >
> >     @Persistent(defaultFetchGroup="true")
> >     private Set<String> participants;
> >
> >         public Discussion(Key key, String title, String createdBy,
> >                         Date creationDate, String profileImagePath) {
> >                 super();
> >                 this.key = key;
> >                 this.title = title;
> >                 this.createdBy = createdBy;
> >                 this.creationDate = creationDate;
> >                 this.profileImagePath = profileImagePath;
> >                 this.tags = new HashSet<String>();
> >                 this.participants = new HashSet<String>();
> >         }
> >
> >         public Key getKey() {
> >                 return key;
> >         }
> >
> >         public void setKey(Key key) {
> >                 this.key = key;
> >         }
> >
> >         public String getTitle() {
> >                 return title;
> >         }
> >
> >         public void setTitle(String title) {
> >                 this.title = title;
> >         }
> >
> >         public String getCreatedBy() {
> >                 return createdBy;
> >         }
> >
> >         public void setCreatedBy(String createdBy) {
> >                 this.createdBy = createdBy;
> >         }
> >
> >         public Date getCreationDate() {
> >                 return creationDate;
> >         }
> >
> >         public void setCreationDate(Date creationDate) {
> >                 this.creationDate = creationDate;
> >         }
> >
> >         public String getProfileImagePath() {
> >                 return profileImagePath;
> >         }
> >
> >         public void setProfileImagePath(String profileImagePath) {
> >                 this.profileImagePath = profileImagePath;
> >         }
> >
> >         public Set<String> getTags() {
> >                 return tags;
> >         }
> >
> >         public void setTags(Set<String> tags) {
> >                 this.tags = tags;
> >         }
> >
> >         public Set<String> getParticipants() {
> >                 return participants;
> >         }
> >
> >         public void setParticipants(Set<String> participants) {
> >                 this.participants = participants;
> >         }
> >
> >         public static long getSerialversionuid() {
> >                 return serialVersionUID;
> >         }
> >
> > }
> >
> > package com.test;
> >
> > import java.io.Serializable;
> > import java.util.Date;
> >
> > import javax.jdo.annotations.IdGeneratorStrategy;
> > import javax.jdo.annotations.IdentityType;
> > import javax.jdo.annotations.PersistenceCapable;
> > import javax.jdo.annotations.Persistent;
> > import javax.jdo.annotations.PrimaryKey;
> >
> > import com.google.appengine.api.datastore.Key;
> >
> > @PersistenceCapable(identityType = IdentityType.APPLICATION)
> > public class Message implements Serializable{
> >         private static final long serialVersionUID =
> -9115235415573154018L;
> >
> >         @PrimaryKey
> >     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> >     private Key key;
> >
> >     @Persistent
> >     private String discussionId;
> >
> >         @Persistent
> >     private String title;
> >
> >     @Persistent
> >     private String createdBy;
> >
> >     @Persistent
> >     private Date creationDate;
> >
> >         public Message(Key key, String discussionId, String title,
> >                         String createdBy, Date creationDate) {
> >                 super();
> >                 this.key = key;
> >                 this.discussionId = discussionId;
> >                 this.title = title;
> >                 this.createdBy = createdBy;
> >                 this.creationDate = creationDate;
> >         }
> >
> >         public Key getKey() {
> >                 return key;
> >         }
> >
> >         public void setKey(Key key) {
> >                 this.key = key;
> >         }
> >
> >         public String getDiscussionId() {
> >                 return discussionId;
> >         }
> >
> >         public void setDiscussionId(String discussionId) {
> >                 this.discussionId = discussionId;
> >         }
> >
> >         public String getTitle() {
> >                 return title;
> >         }
> >
> >         public void setTitle(String title) {
> >                 this.title = title;
> >         }
> >
> >         public String getCreatedBy() {
> >                 return createdBy;
> >         }
> >
> >         public void setCreatedBy(String createdBy) {
> >                 this.createdBy = createdBy;
> >         }
> >
> >         public Date getCreationDate() {
> >                 return creationDate;
> >         }
> >
> >         public void setCreationDate(Date creationDate) {
> >                 this.creationDate = creationDate;
> >         }
> >
> >         public static long getSerialversionuid() {
> >                 return serialVersionUID;
> >         }
> >
> > }
> >
> > package com.test;
> >
> > import java.io.Serializable;
> > import java.util.Date;
> > import java.util.HashSet;
> > import java.util.Set;
> >
> > import javax.jdo.annotations.IdGeneratorStrategy;
> > import javax.jdo.annotations.IdentityType;
> > import javax.jdo.annotations.PersistenceCapable;
> > import javax.jdo.annotations.Persistent;
> > import javax.jdo.annotations.PrimaryKey;
> >
> > @PersistenceCapable(identityType = IdentityType.APPLICATION)
> > public class Notification implements Serializable{
> >         private static final long serialVersionUID =
> -9115235415573154018L;
> >
> >         @PrimaryKey
> >     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> >     private Long id;
> >
> >         @Persistent
> >     private String title;
> >
> >     @Persistent
> >     private String createdBy;
> >
> >     @Persistent
> >     private Date creationDate;
> >
> >     @Persistent(defaultFetchGroup="true")
> >     private Set<String> users;
> >
> >         public Notification(Long id, String title, String createdBy,
> >                         Date creationDate) {
> >                 super();
> >                 this.id = id;
> >                 this.title = title;
> >                 this.createdBy = createdBy;
> >                 this.creationDate = creationDate;
> >                 this.users =  new HashSet<String>();
> >         }
> >
> >         public Long getId() {
> >                 return id;
> >         }
> >
> >         public void setId(Long id) {
> >                 this.id = id;
> >         }
> >
> >         public String getTitle() {
> >                 return title;
> >         }
> >
> >         public void setTitle(String title) {
> >                 this.title = title;
> >         }
> >
> >         public String getCreatedBy() {
> >                 return createdBy;
> >         }
> >
> >         public void setCreatedBy(String createdBy) {
> >                 this.createdBy = createdBy;
> >         }
> >
> >         public Date getCreationDate() {
> >                 return creationDate;
> >         }
> >
> >         public void setCreationDate(Date creationDate) {
> >                 this.creationDate = creationDate;
> >         }
> >
> >         public Set<String> getUsers() {
> >                 return users;
> >         }
> >
> >         public void setUsers(Set<String> users) {
> >                 this.users = users;
> >         }
> >
> >         public static long getSerialversionuid() {
> >                 return serialVersionUID;
> >         }
> >
> > }
> >
> > package com.test;
> >
> > import java.io.Serializable;
> > import java.util.HashSet;
> > import java.util.Set;
> > import javax.jdo.annotations.IdGeneratorStrategy;
> > import javax.jdo.annotations.IdentityType;
> > import javax.jdo.annotations.PersistenceCapable;
> > import javax.jdo.annotations.Persistent;
> > import javax.jdo.annotations.PrimaryKey;
> >
> > import com.google.appengine.api.datastore.Key;
> >
> > @PersistenceCapable(identityType = IdentityType.APPLICATION)
> > public class User implements Serializable {
> >         private static final long serialVersionUID = 1L;
> >
> >         @PrimaryKey
> >         @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> >         private Key key;
> >
> >         @Persistent
> >         private String password;
> >
> >         @Persistent
> >         private String profileImagePath;
> >
> >         @Persistent(defaultFetchGroup = "true")
> >         private Set<String> tags;
> >
> >         @Persistent(defaultFetchGroup = "true")
> >         private Set<String> friends;
> >
> >         @Persistent(defaultFetchGroup = "true")
> >         private Set<String> observing;
> >
> >         public User(Key key, String password, String profileImagePath) {
> >                 super();
> >                 this.key = key;
> >                 this.password = password;
> >                 this.profileImagePath = profileImagePath;
> >                 this.tags =  new HashSet<String>();;
> >                 this.friends =  new HashSet<String>();
> >                 this.observing =  new HashSet<String>();
> >         }
> >
> >         public Key getKey() {
> >                 return key;
> >         }
> >
> >         public void setKey(Key key) {
> >                 this.key = key;
> >         }
> >
> >         public String getPassword() {
> >                 return password;
> >         }
> >
> >         public void setPassword(String password) {
> >                 this.password = password;
> >         }
> >
> >         public String getProfileImagePath() {
> >                 return profileImagePath;
> >         }
> >
> >         public void setProfileImagePath(String profileImagePath) {
> >                 this.profileImagePath = profileImagePath;
> >         }
> >
> >         public Set<String> getTags() {
> >                 return tags;
> >         }
> >
> >         public void setTags(Set<String> tags) {
> >                 this.tags = tags;
> >         }
> >
> >         public Set<String> getFriends() {
> >                 return friends;
> >         }
> >
> >         public void setFriends(Set<String> friends) {
> >                 this.friends = friends;
> >         }
> >
> >         public Set<String> getObserving() {
> >                 return observing;
> >         }
> >
> >         public void setObserving(Set<String> observing) {
> >                 this.observing = observing;
> >         }
> >
> >         public static long getSerialversionuid() {
> >                 return serialVersionUID;
> >         }
> >
> > }
> >
> > package com.test;
> >
> > import java.io.Serializable;
> >
> > import javax.jdo.annotations.IdGeneratorStrategy;
> > import javax.jdo.annotations.IdentityType;
> > import javax.jdo.annotations.PersistenceCapable;
> > import javax.jdo.annotations.Persistent;
> > import javax.jdo.annotations.PrimaryKey;
> >
> > import com.google.appengine.api.datastore.Key;
> >
> > @PersistenceCapable(identityType = IdentityType.APPLICATION)
> > public class WorkGroup implements Serializable{
> >         private static final long serialVersionUID =
> -9115235415573154018L;
> >
> >         @PrimaryKey
> >     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
> >     private Key key;
> >
> >     @Persistent
> >     private String userName;
> >
> >     @Persistent
> >     private String workGroupUserName;
> >
> >         public WorkGroup(Key key, String userName, String
> workGroupUserName)
> > {
> >                 super();
> >                 this.key = key;
> >                 this.userName = userName;
> >                 this.workGroupUserName = workGroupUserName;
> >         }
> >
> >         public Key getKey() {
> >                 return key;
> >         }
> >
> >         public void setKey(Key key) {
> >                 this.key = key;
> >         }
> >
> >         public String getUserName() {
> >                 return userName;
> >         }
> >
> >         public void setUserName(String userName) {
> >                 this.userName = userName;
> >         }
> >
> >         public String getWorkGroupUserName() {
> >                 return workGroupUserName;
> >         }
> >
> >         public void setWorkGroupUserName(String workGroupUserName) {
> >                 this.workGroupUserName = workGroupUserName;
> >         }
> >
> >         public static long getSerialversionuid() {
> >                 return serialVersionUID;
> >         }
> >
> >
> >
> > }
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> google-appengine-j...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to