Skip to content

iOS app build uising Swift (only UIKit) and CoreData to take attendances of a small group of people.

License

Notifications You must be signed in to change notification settings

leobartowski/Bdc

Repository files navigation


BdC

Bdc is an app created to take the attendance of a group of friends who meet on daily basis in a common place.

Why

It was born as a way to avoid using excel files, time sheets or things like that. The app is designed to be used by a single administrator who manages the attendance of all users and shares them with others, via a pdf that can be filtered by time frame.
Over time, many specific features have been added, many of which are still in the works, such as attendance difficulties, confetti to celebrate 100% attendance in a given period and the inability to register attendance on holidays.
I created this project for personal use and not for commercial distribution so many features have not been created in the best way possible but only with the purpose of being functional



Detail

The app is divided in three main section:

Calendar

It's the view displayed when the app starts and it's used to take attendances or to view the attendees of a past day.


The calendar is displayed weekly by default but with a scroll it can become monthly. Clicking on a specific person's card makes them present for that day in that specific slot (morning or afternoon) while the long press gives them a warning (system created to avoid unfulfilled reservations). The collection view used to display the persons has a search bar, visible only when scrolling down, that can be used to filter elements.

Ranking

The main purpose of this section is to display the number of appearances made in a given period. By default, the display is weekly, so using a horizontal scroll you can move from week to week. By clicking on a specific person, the cell expands showing on which days of the week the attendance or warnings were made.


The user, using the two button on the top left, can change the time period (week, month, year or all-time) and the slot (morning, evening or both) used to calculate the number of attendances.

After the user has chosen the time frame and the slot he is interested in, he can share attendance in pdf. The app will automatically generate a file indicating the filters chosen and the number of appearances and warnings for each user.

Settings

The settings allow the user to customize different things around all the app such as: avoid modification old days, show percentage of attendance in chosen time frame, show/hidden confetti it a person complete a perfect period (100 % attendance) and the possibility of multiplying the all-time attendance by a difficulty coefficient based on the distance between the chosen location and the person's residence.


As you can see, the people list is dynamic and people can be added / removed at any time.
In the settings it's possible to see all the amazing open-source projects (❤️) that helped the creation of this app.


Development

How

The app is fully developed in Swift (UIKit), it doesn't have any networking and all the attendance are saved using CoreData. All the design is made entirely by me using Figma.

I use this Trello board to keep track of bugs and nice things to implement, take a look if you want. Suggestions and constructive criticisms are always welcome so feel to leave a comment!

Requirements

iOS Deployment Target Xcode Version Swift Language Version
15.0 14.0 Swift 5

Installation

  1. Install CocoaPods.
  2. Go to the project directory in terminal and execute pod install.

Configure Signing

  1. Open Bdc.xcworkspace with Xcode.
  2. In Xcode navigate to the Signing & Capabilities panel of the project editor.
  3. Change Team to your team.
  4. Change Bundle identifier to something unique.

Run

  1. In Xcode use the Scheme menu to select the Bdc scheme.
  2. Run the app.

License

This project is licensed under the terms of the MIT license.

About

iOS app build uising Swift (only UIKit) and CoreData to take attendances of a small group of people.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages