-
Notifications
You must be signed in to change notification settings - Fork 0
Software Design Specification (SDS)
limber is a event planning and timetabling website for university students to easily find club and social activities to join in the gaps of their timetable. The project will contribute to improving the social lives of university students by encouraging them to participate in clubs and societies. In this digital age and fast paced society, students will often directly leave university after class, whether it's to go to work or go home and play games. This often makes it hard for students to meet new people and find new interests. limber will make it more convenient for students to find activities that fit in with their timetable. This will allow students to socialise and try out new activities in the time that they already spend at university.
To begin, the user signs in using either the in-built sign in page or through integrated services such as Google. If the user does not have a preexisting account, the app allows them to sign-up. Once signed in, the user is brought to a main screen with several options. These can be separated into some different functions:
- Check user calendar: You can check your monthly, weekly or daily calendar. You can also toggle weekends on and off.
- Add events: Users can add their own events to the calendar. There is also a function to search for events using tags.
- Groups: Users can create and join groups. There is also a function to search for groups using tags.
- Selection function:User can choose to display a calendar for month, week or day
- My Account: The user's own profile can be displayed and edited
- Settings: User settings can be edited, such as privacy settings




- Modern web browser
- Requires laptop or phone
- Internet access to access auth0
- Server must be run with NodeJS with a PostgreSQL server running

limber utilises a PostgreSQL database to persist data. The frontend interfaces with the database through a backend which provides an API with Express running on NodeJS. The backend interfaces with the database through the Sequelize ORM.
limber employs multiple methods of ensuring that the limber system is secure and that data is only accessed by authorised parties:
- limber utilises the Sequelize ORM to interface with the PostgreSQL database. This abstracts raw queries from the backend code, which mitigates common SQL injection attacks.
- For user authentication, limber uses auth0 as a third-party to provide authentication and authorisation for web apps and web APIs. This integration ensures that limber does not handle sensitive user information and data.
- limber uses React for the frontend, which provides basic protection against XSS attacks.