Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# Taskora 🚀

![NodeJS](https://img.shields.io/badge/Node.js-6DA55F?logo=node.js&logoColor=white) ![Express.js](https://img.shields.io/badge/Express.js-%23404d59.svg?logo=express&logoColor=%2361DAFB) ![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=fff) ![Docker](https://img.shields.io/badge/Docker-2496ED?logo=docker&logoColor=fff) ![MySQL](https://img.shields.io/badge/MySQL-4479A1?logo=mysql&logoColor=fff) ![Prisma](https://img.shields.io/badge/Prisma-2D3748?logo=prisma&logoColor=white) ![Redis](https://img.shields.io/badge/Redis-%23DD0031.svg?logo=redis&logoColor=white) ![Nginx](https://img.shields.io/badge/Nginx-009639.svg?logo=nginx&logoColor=white)
![Postman](https://img.shields.io/badge/Postman-FF6C37?logo=postman&logoColor=white) ![Microsoft Azure](https://custom-icon-badges.demolab.com/badge/Microsoft%20Azure-0089D6?logo=msazure&logoColor=white)
![Postman](https://img.shields.io/badge/Postman-FF6C37?logo=postman&logoColor=white) ![Swagger](https://img.shields.io/badge/Swagger-<SWAGGER_COLOR>?logo=swagger&logoColor=white) ![Microsoft Azure](https://custom-icon-badges.demolab.com/badge/Microsoft%20Azure-0089D6?logo=msazure&logoColor=white)

Taskora API built using **Node.js**, **Express.js**, **TypeScript**, **Prisma ORM**, and **Redis**. It allows users to **create**, **read**, **update**, and **delete** projects & tasks while following RESTful API design principles.

🌐 **[Frontend Repository](https://github.com/amatter23/Taskora)** | 🚀 **[Live Demo](https://Taskora.live)**
🌐 **[Frontend Repository](https://github.com/amatter23/Taskora)** | 🚀 **[Live Preview](https://Taskora.live)**

---

**[⚠️ Alert]** Taskora now has `+200` active users! 🎉
**[⚠️ Alert]** Taskora now has `+250` active users! 🎉

---

**[⚠️ Alert]** I have created a [Node.js script](https://github.com/MuhammedMagdyy/taskora-user-tracker) to monitor new user registrations passionately and celebrate every new member of the Taskora community.
**[⚠️ Alert]** I have created a [Node.js script](https://github.com/MuhammedMagdyy/taskora-user-tracker) to monitor new user registrations passionately and celebrate every new member of the Taskora community by sending me an email notification.

---

Expand Down
1 change: 0 additions & 1 deletion src/interfaces/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,5 @@ export * from './auth.interface';
export * from './database.interface';
export * from './email.interface';
export * from './jwt.interface';
export * from './query.interface';
export * from './strategy.interface';
export * from './user.interface';
9 changes: 0 additions & 9 deletions src/interfaces/query.interface.ts

This file was deleted.

2 changes: 1 addition & 1 deletion src/services/competition.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ export class CompetitionService {

const userInfo = await userService.getUserInfo(userUuid);

await emailService.sendNotifyWinnerEmail(
await emailService.notifyWinnerViaEmail(
userInfo.email,
userInfo.name as string,
);
Expand Down
2 changes: 1 addition & 1 deletion src/services/email.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export class EmailService {
});
}

async sendNotifyWinnerEmail(email: string, name: string) {
async notifyWinnerViaEmail(email: string, name: string) {
const html = getWinnersTemplate().replace(/{{name}}/g, name);

await this.mailProvider.sendEmail({
Expand Down
1 change: 0 additions & 1 deletion src/services/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ export * from './github.service';
export * from './google.service';
export * from './hashing.service';
export * from './otp.service';
export * from './pagination.service';
export * from './project.service';
export * from './redis.service';
export * from './refreshToken.service';
Expand Down
13 changes: 0 additions & 13 deletions src/services/pagination.service.ts

This file was deleted.

5 changes: 4 additions & 1 deletion src/services/providers/smtp.provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,10 @@ export class SmtpMailProvider implements IMailProvider {
}

async sendEmail(options: nodemailer.SendMailOptions): Promise<void> {
await this.transporter.sendMail({ from: mailAuthUser, ...options });
await this.transporter.sendMail({
from: `Taskora support <${mailAuthUser}>`,
...options,
});
}
}

Expand Down
1 change: 0 additions & 1 deletion src/types/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
export * from './jwt';
export * from './query';
export * from './status';
export * from './statusCodes';
export * from './user';
1 change: 0 additions & 1 deletion src/types/query.ts

This file was deleted.

41 changes: 3 additions & 38 deletions src/utils/constants.ts
Original file line number Diff line number Diff line change
@@ -1,41 +1,3 @@
// TODO: Need to make DB_COLUMNS a type
export const DB_COLUMNS = {
PROJECT: {
UUID: 'uuid',
NAME: 'name',
DESCRIPTION: 'description',
DUE_DATE: 'dueDate',
COLOR: 'color',
CREATED_AT: 'createdAt',
UPDATED_AT: 'updatedAt',
STATUS_UUID: 'statusUuid',
},
TASK: {
UUID: 'uuid',
NAME: 'name',
DESCRIPTION: 'description',
DUE_DATE: 'dueDate',
CREATED_AT: 'createdAt',
UPDATED_AT: 'updatedAt',
PROJECT_UUID: 'projectUuid',
TAG_UUID: 'tagUuid',
STATUS_UUID: 'statusUuid',
},
TAG: {
UUID: 'uuid',
NAME: 'name',
COLOR: 'color',
CREATED_AT: 'createdAt',
UPDATED_AT: 'updatedAt',
},
STATUS: {
UUID: 'uuid',
NAME: 'name',
COLOR: 'color',
CREATED_AT: 'createdAt',
UPDATED_AT: 'updatedAt',
},
};
export const SERVER = {
DEVELOPMENT: 'development',
PRODUCTION: 'production',
Expand All @@ -50,6 +12,7 @@ export const SERVER = {
`,
LOCALHOST_URLS: ['http://localhost:3000', 'http://localhost:5174'],
};

export const API_INTEGRATION = {
GOOGLE: {
USER_INFO_SCOPES: [
Expand All @@ -66,6 +29,7 @@ export const API_INTEGRATION = {
`https://api.github.com/applications/${clientId}/token`,
},
};

export const MAGIC_NUMBERS = {
ONE_MINUTE_IN_MILLISECONDS: 60 * 1000,
ONE_DAY_IN_MILLISECONDS: 24 * 60 * 60 * 1000,
Expand All @@ -85,6 +49,7 @@ export const MAGIC_NUMBERS = {
TEN: 10,
},
};

export const DEFAULT_VALUES = {
PROJECTS: {
name: '🚀 First Launch',
Expand Down
1 change: 0 additions & 1 deletion src/utils/validations/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ export * from './auth';
export * from './eid';
export * from './params';
export * from './project';
export * from './query';
export * from './tags';
export * from './tasks';
export * from './user';
18 changes: 0 additions & 18 deletions src/utils/validations/query.ts

This file was deleted.