Skip to content

A simple cpp project for freshman in SS of SYSU.

License

Notifications You must be signed in to change notification settings

donydchen/Agenda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IMPLEMENT CODES for SYSU SS TRNG 2014 - Agenda using Qt

A simple C++ project for practice, it contains most of the object oriented programming features, such as encapsulation, inheritance, polymorphism, etc. Besides, SQLite3 and Qt5 are added, which could help you learn basic database operations and desktop application development. Have Fun!!

icon

Features

Agenda is a simple app that can help you manage your daily life. It includes the following useful features:

  • User register, delete, login and logout
  • Storage selection: JSON / SQLite
  • List all users, meetings, sponsor meetings and participator meetings
  • Create meeting
  • Delete meeting by title, all meetings
  • Query meeting by title or by time interval
  • Update meeting information
  • Desktop notification

Screenshots

Terminal version Agenda


Qt5 version AgendaQt

login
User sign in page

list_all_meeting
List all Meetings

create_meeting
Create a Meeting

System Design

three_tier
Three Tier Architecture

class_diagram
System Class Diagram

For more detail of project Agenda's design, Check out the report provided in doc/Agenda_Report.pdf.(Sorry but it is Chinese only)

Install, Run and Uninstall

Install
A 64bits debian package is provided in the project's releases page. Check it out and download newest package agendaqt_x.x.x_amd64.deb. Double click it or cd to where it locates and run the folllowing command

sudo dpkg -i agendaqt*.deb
sudo apt -f install

Run

  • To run Qt version AgendaQt, type AgendaQt in terminal or find it in your system applications and click it.
  • To run terminal version Agenda, type Agenda in terminal.

Uninstall

To remove the application, run the following commands

sudo dpkg --purge agendaqt
rm -rf ~/.miniagenda  # to remove app data

Build

Setup Dependencies
This project is bulit with sqlite3 and Qt5, so make sure you have set up the dependencies before trying to build it.
For Ubuntu based system, you could use the following command to install sqlite3.

sudo apt install sqlite3 libsqlite3-dev

Check out Qt5's Homepage to find out how to install it.

Make
If you are using Qt Creator, I strongly recommend you to import this project to it through file Agenda.pro, and then you should be able to build and run the project in it.

If you want to build it in terminal, export your qt5 path to PATH and then use qmake. For example,

export PATH=/opt/Qt5.7.0/5.7/gcc_64/bin:$PATH
qmake Agenda.pro -r -spec linux-g++
make

Debian Package

A debian package create script is provided in mkpkg/mkpkg.sh, linuxdeployqt is used in order to make the application self-contained.
To build new package, you are supposed to compile Agenda and AgendaQt first, and then copy the binary files Agenda and AgendaQt to subfolder mkpkg, cd to mkpkg/ and run the following commands.

bash mkpkg.sh

Wait for a few seconds, and you could see a package named agendaqt_x.x.x_amd64.deb in mkpkg/.

Update History

  • May 24th, 2017: Add sqlite3 back end in order to adopt Polymorphism and Inheritance features to this project; Rearrange code structure; Fine tune UI.
  • Oct. 1st, 2016: Add Qt5 front end, the original terminal based version was moved to subfolder backend/.
  • May 5th, 2016: First commit.