help-recutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Sample project as complement to manual - exists?


From: Jose E. Marchesi
Subject: Re: Sample project as complement to manual - exists?
Date: Fri, 07 Aug 2020 17:32:17 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Hi Richard.

> About a week ago I was pointed to recutils as appropriate tool for a
> personal project. I've completed an initial reading of the manual
>  [https://www.gnu.org/software/recutils/manual/html_node/index.html].
>
> Although there are many examples of individual commands, I'm looking
> for a sample project to serve as an example of project workflow.

For storing the data associated with GNU's participation in the Google
Summer of Code, we maintain recfiles like this:

--- begin of soc2020.rec ---
# soc2020.rec - Database for the GNU Summer Of Code.
#
#
# This file contains the list of projects/ideas and mentors that are
# part of the GNU application for SoC 2020.
#
# Types of records stored in this file:
#
#     Project -> GNU package participating in the SOC.
#     Mentor  -> Mentor for one or more projects.
#     Student -> Student participating in SOC under GNU.
#
# Useful queries:
#
# - Number of essential slots:
#   recsel soc2020.rec -t Project -p 'Sum(EssentialSlots)'
#
# - Number of desired slots:
#   recsel soc2020.rec -t Project -p 'Sum(DesiredSlots)'
#
# - Desired slots vs. mentored students per project:
#
#   recsel soc2020.rec -t Student -j Project \
#   | recsel -G Project_Name \
#     -p 'Project_Name,Count(Email):Students,Project_DesiredSlots' -U
#
# - Selected students per project
#
#   recsel soc2020.rec -t Student -j Project -e 'Selected = "yes"' \
#   | recsel -G Project_Name -p Email:Student,Project_name:Project
#
#   and number of:
#
#   ... | recsel -p 'Count(Student)'
#
# For inquiries about this file please contact summer-of-code@gnu.org.

%rec: Project
%key: Name
%doc: GNU package contributing ideas for the SOC 2014.
%type: EssentialSlots,DesiredSlots int
%summary: Name
%type: When date
%type: Status enum FOO BAR BAZ

[... Project records ...]

%rec: Mentor
%key: Email
%mandatory: Project
%type: Project rec Project
%confidential: Phone AltEmail

[... Mentor records ...]

%rec: Student
%key: Email
%type: Email email
%type: Mentor rec Mentor
%type: Project rec Project

[... Student records ...]
--- end of soc2020.rec ---

I left the actual records out.

Note how the database contains a record set corresponding to each of the
entities that we want to track information about: projects, mentors and
students.

Mentors are associated with projects.  This is achieved by defining
`Project' as a reference to a project in the Mentor record set.
Likewise, students are associated with both mentors and projects.

Some of the data associated with both mentors and students are
confidential.  We mark them as such in their record sets, and then use
recfix (or recins) in order to encrypt them.

Note also the example queries.

> In my case I be starting with 2 single page spreadsheets which will be
> exported in CSV format whose purpose will be tracking the nutrient 
> content of what I eat. One file would be the nutrient content of
> individual foods. The other would be a daily log of what was
> eaten. {An inventory control project could have a similar structure.}

Well, there is gnutrition :)
http://www.gnu.org/s/gnutrition



reply via email to

[Prev in Thread] Current Thread [Next in Thread]