Contact Information:
Your Name: Mrigesh Pokhrel
Email Address: mrigeshpokhrel@gmail.com
IRC nickname: _silentAssassin
Dreamwidth ID: http://mrigeshpokhrel.dreamwidth.org
Dreamhacks ID: http://www.mrigesh.hack.dreamwidth.net/
Skype username: mrigeshpokhrel
Webpage/blog: http://mrigeshpokhrel.dreamwidth.org
College-University: Indian Institute of Information technology
Major: Information Technology
Project:
The motive of this project would be to develop a desktop client which would enable the end-user to read posts,comment on posts (anyone can post on public posts, but user needs to be in the access list if he/she wants to post on a private post), edit his/her past journal entries and post a new journal entry with all available logprops(tags, crossposts,moods,set userpic,current location,comments). There would also be feature for multiple logins for users with multiple accounts. The client would be implemented using (Flat client/server protocol : http://www.livejournal.com/doc/server/ljp.csp.flat.protocol.html) C++ and xmlrpc using xmlrpc libraries for c++. The project would be built following "bottom-up" approach centering it along the linux platform. The application would be built on a cross-platform framework QT4 which supports Mac,Windows,Linux and mobile device OS like Symbian. The application would be developed on Linux OS(Ubuntu) and then subsequently ported to other Operating Systems.
Deliverables:
24th May : research on designing a gui client
12th June : work on testing the client, finding bugs and errors and finally port the client to a GUI framework.
12th July : submit the developed application to mentor for reviews and suggestions before finally submitting it for mid-term evaluations.
9th August : develop the GUI to work with most of the protocols defined.
18th August : submit the final application after properly creating the documentation, and cleaning up the codebase.
Give us details about the milestones for this project
1. Research and Preparation:
24th May -- 11th June
Research/study on developing and designing a bare minimum client with respect to the most necessary protocols and build flowchart and visual diagrams of how project would commence, posting it on the community side by side for suggestions and improvements.
2. Development(Alpha Stage):
12th June -- 1st July
Developing a bare minimum client which would incorporate following features.
- The client would request the user for authentication(username and password)
- The client would allow the user to "read" past entries and "post" a new entry after successful authentication.
- The methods used would be (Flat client/server protocol : http://www.livejournal.com/doc/server/ljp.csp.flat.protocol.html)
- login : logging into the client after successful authentication
- sessiongenerate : generating a session after successful login
- postevent : posting a blog/journal only if the login and sessiongenerate are both successful.
- sessionexpire : close the session instance the user has created thus
3. Functional GUI and Installer(Beta release):
2nd July -- 14th July
The client should be fully functional and the GUI should be user-friendly. End-user help documentation for the user to understand the working of the application should be prepared and published. Developer's documentation which describes in detail about all the functions, classes, and methods incorporated must be uploaded with the source code itself.
The client would be released on community forums for the community to test and provide feed back, suggestions and new enhancement requests.
The client would be submitted to the mentor/organisation for review and expert comments before finally submitting for the midterm evaluations.
4. Expansion and Subtle(Release candidate):
17th July -- 9th August
Client with functionalities like reading and editing past posts, check public/private and access/subscription list and edit friend list(access/subscription)/groups(access/subscription)
- The client would perform bare minimum functions as defined above
- The user would be able to view his past posts and edit them.
- The client would have a side pane/scrollbox where he would be able to view and edit his existing access/subscriptions list both for groups and individual users
- The application must be ported to Windows(XP and beyond), Linux, Mac and tested as working and stable on all three platforms.
- The application would have options for proxy support where the user behind proxy would be able to access and post.
- The new methods implemented would be :
- login : logging into the client after successful authentication.
- sessiongenerate : generating a session after successful login. There would be multiple instances of session generate implemented in the application so as to allow the user with multiple accounts to access them all at once.
- postevent : posting a blog/journal only if the login and sessiongenerate are both successful.
- getevents : coupled with "syncitems" this would allow the user to view his past posts, events, to-do items.
- editevent : this would allow the user to edit/delete past posts in his journal.
- access/subscription list for individual users : this would fetch the list of users the current logged in user identifies as those who can access his private posts against those who are subscribed to his public posts only and displays them in the side pane/scrollbox.
- access/subscription list for group: fetch the user defined groups which defines the access/subscriptions permissions for the groups
- editfriends : change the access/subscription permission for any user to view public/private posts and subsequently comment on them
- editfriendgroups : change the access/subscription permission for groups defined by the user to view public/private posts and subsequently comment on them
5. Finalize and Clean-Up(Final Release):
10th August -- 22nd August :
Clean up the code and test the program for errors while completing the documentation (end-user as well as developer's reference). The documentation would be going on side by side by the development of the application. Develop the application and port it successfully to all three platforms and create an installer for such(".exe for Windows", ".tar.gz for Linux", ".app for Mac"). Release the application for the community to use and suggest further changes.
AvailabilityHow long will the project take? When can you begin?
I can begin anytime after 15th May, thats when my end semester break starts. The project would be finished before the final submission(2.5 months -- 3 months).
How much time do you expect to dedicate to this project? (weekly)
Taking Sunday as my weekend, and 6 hours daily,I would work on the project 36-40 hrs per week.
Where will you based during the summer?
I would be based in Allahabad,India. I have access to internet and would be available for most part of the day.
Do you have any commitments for the summer? (holidays/work/summer courses)
No, I do not have any plans for Summer. If any such un-foreseen events do surface, I would make sure to make my absence as less as possible and inform the mentor in advance.
(Please kindly go through the following as well : http://dw-dev.dreamwidth.org/45416.html)