- Topic 7: Build a program to manage Slack services and synchronize data to AirTable
- Requirements:
- Using JAVA language
- Exploring Slack, AirTable and its API
- Accessing integrate Slack User and Slack Channel to AirTable
- Document: slack API, Airtable API
Project planing: details
- Diagrams:
- Usecase diagram: Usecase diagram
- Class diagram: Class diagram
- Activity diagram: Activity diagram
- Settings: Can using default pom.xml file
- GroupId:
com.project
- ArtifactId:
slackairtablesyncing
- Dependencies:
- GroupId:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.slack.api</groupId>
<artifactId>slack-api-client</artifactId>
<version>1.29.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.7</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20230227</version>
</dependency>
- Airtable database:
- Create table Channels:
- Fields: name, id, topic, description, creator, createDaate, privacy, status, is_deleted, Users (linked to Users table)
- Create table Users:
- Fields: name, id, displayName, fullName, email, status, role, userCreateDate, statusChangeDate, is_deleted
- Create table Logs:
- Fields: status, Task, Submitted, Started, Finished, Duration
- Create table Channels:
- Configuration:
- All credentials and token are required in config file
- Compiler:
- Recommended compiler: Eclipse IDE and Intellij IDEA
- Run configuration:
- Project folder: SlackAirtableSyncing
- Source folder: src
- Main class: com.project.main.Main