Skip to content

Infinite Voices is a creative project focused on exploring the endless potential of expression through storytelling, art, and technology. It seeks to amplify diverse perspectives, blending innovation with emotion to craft

Notifications You must be signed in to change notification settings

LucasVince/Infinite-Voices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

34 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ† Infinite Voices πŸŽ†


Image

πŸŽ‰ What is Infinite Voices?

Infinite Voices is an interactive and highly scalable forum designed to provide an exceptional user experience. πŸš€

  • Built using TypeScript β€” the language taking the development world by storm! πŸ†
  • TypeScript provides the safety and efficiency you need with static typing, enabling rapid development and bug-free code. ✨
  • This project demonstrates our expertise with TypeScript and cutting-edge technologies. With TypeScript, we’ve created a highly scalable and maintainable forum, proving that it can power robust and modern systems. πŸ’‘


πŸ“‚ Directory Structure

The project is organized as follows:

Infinite Voices/
β”œβ”€β”€ dist/
β”‚ β”œβ”€β”€ client/
β”‚ β”‚ β”œβ”€β”€ pages/
β”‚ β”‚ β”‚ β”œβ”€β”€ Configs/ # Configuration pages or settings
β”‚ β”‚ β”‚ β”œβ”€β”€ Credits/ # Credits page for developers or contributors
β”‚ β”‚ β”‚ β”œβ”€β”€ Home/ # Homepage for the forum
β”‚ β”‚ β”‚ β”œβ”€β”€ Login/ # Login page for user authentication
β”‚ β”‚ β”‚ β”œβ”€β”€ Perfil/ # User profile page
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ Perfil.html # HTML structure for the profile page
β”‚ β”‚ β”‚ β”‚ └── script.js # JavaScript for interactivity in the profile page
β”‚ β”‚ β”‚ β”œβ”€β”€ Post/ # Page for creating and viewing posts
β”‚ β”‚ β”‚ β”œβ”€β”€ Register/ # Registration page for new users
β”‚ β”‚ β”‚ β”œβ”€β”€ Topics/ # Topics overview page
β”‚ β”‚ β”‚ β”‚ └── script.js # JavaScript for handling topic interactions
β”‚ β”‚ β”‚ └── style.css # Global CSS styles for all pages
β”œβ”€β”€src/
β”‚ β”œβ”€β”€ server/
β”‚ β”‚ β”œβ”€β”€ DB/
β”‚ β”‚ β”‚ └── models/
β”‚ β”‚ β”‚ β”œβ”€β”€ post.model.ts # Defines the MongoDB schema for posts
β”‚ β”‚ β”‚ β”œβ”€β”€ user.model.ts # Defines the MongoDB schema for users
β”‚ β”‚ β”‚ └── connect.ts # Handles MongoDB connection logic
β”‚ β”‚ β”œβ”€β”€ modules/
β”‚ β”‚ β”‚ β”œβ”€β”€ serverExpress.ts # Express.js server setup and configurations
β”‚ β”‚ β”‚ └── index.ts # Entry point for the server modules
β”œβ”€β”€ .env.example # Example file for environment variables
β”œβ”€β”€ main.js # Main file for running the application
β”œβ”€β”€ package.json # Contains project metadata and dependencies
β”œβ”€β”€ package-lock.json # Lockfile for exact dependency versions
β”œβ”€β”€ README.md # Project documentation (this file)
└── tsconfig.json # TypeScript configuration file

πŸš€ Features

  • Live Chat πŸ’¬:
    • Created with Socket.io and Node.js for flawless real-time communication.
    • Offers instant messaging and smooth interactions among users.
  • Interactive Forum 🌐:
    • Powered by Node.js and TypeScript, providing the best user interaction experience.
    • Includes features like posts, comments, and reactions to engage users.
  • Scalability πŸ”:
    • Built with TypeScript and robust tools, the forum is designed to scale and support an infinite number of users and posts. πŸš€
    • Scalable architecture ensures smooth performance under high traffic.
  • Cutting-Edge Technology πŸ’‘:
    • TypeScript ensures clean, maintainable, and efficient code.
    • Implements the latest industry standards for performance and reliability. 🐞

πŸ› οΈ Skills & Technologies Used

Languages & Frameworks

  • TypeScript πŸ’»:
    • Combines the flexibility of JavaScript with the safety of strong typing.
    • Enables faster development, reduces bugs, and ensures scalability.
  • Node.js πŸš€:
    • Backend powerhouse for building scalable, high-performance applications.
    • Efficiently handles real-time data and multiple user interactions.
  • Express.js 🌐:
    • Minimal and flexible Node.js framework for building RESTful APIs.
    • Used to power communication between the front-end and back-end.

Database

  • MongoDB πŸ’Ύ:
    • Non-relational database for flexible and scalable data storage.
    • Optimized for handling large volumes of interactive data like posts and messages.

Desktop Application

  • Electron πŸ”²:
    • Converts the web forum into a cross-platform desktop app.
    • Offers a consistent user experience across Windows, Mac, and Linux.

Real-Time Communication

  • Socket.io πŸ’¬:
    • Enables seamless and fast real-time communication for chat features.
    • Highly reliable under different network conditions.

πŸ”’ Security & Performance

Security

  • Follows best practices to secure sensitive user data.
  • Implements authentication and authorization mechanisms.
  • Protects against common threats like SQL Injection, XSS, and CSRF.

Performance

  • Uses caching and compression for faster data delivery.
  • Optimized server responses to minimize latency.
  • Monitors resource usage to ensure smooth scaling.

πŸ”„ Development Workflow

1. Planning 
- Define objectives, target audience, and requirements.  
- Select technologies such as **TypeScript**, **Node.js**, **MongoDB**, **Electron**, and **Socket.io**.  
2. Architecture
- Design the system's front-end (Electron), back-end (Node.js + Express.js), and database (MongoDB).  
- Ensure scalability by planning for future growth.  
3. Development  
- Set up the server and RESTful APIs using Node.js and Express.js.  
- Implement real-time chat with Socket.io.  
- Model database collections for users, posts, and chats.  
4. Testing
- Perform unit, integration, and security tests.  
- Optimize the system based on test results.  
5. Launch and Monitor 
- Deploy the platform and monitor performance.  
- Use analytics and user feedback to improve features.  

πŸ“ˆ Current Status

The project is under continuous development 🚧, constantly improving with new features and adjustments.

Recent Updates:

  • Improved chat interface for smoother conversations.
  • Added notifications for real-time updates.
  • Enhanced database indexing for faster searches.

Future Plans:

  • Mobile app integration for iOS and Android.
  • Advanced user roles and permissions.
  • Support for multimedia posts like images and videos.

🌐 API Routes - Infinite Voices

🏠 Root

GET /

  • Description: Main route of the application.
  • Response:
{
  "status": 200,
  "message": "Welcome"
}

πŸ‘€ User Authentication

POST /register

  • Description: Registers a new user.
  • Request:
{
  "username": "string",
  "email": "string",
  "password": "string"
}
  • Response:
    • 200 OK: Returns the token and user data.
{
  "token": "string",
  "user": {
    "_id": "string",
    "username": "string",
    "email": "string"
  }
}
  • 400 Bad Request: Missing information or user already exists.
{
  "message": "Missing information or this email/username is already taken!"
}
  • 500 Internal Server Error: Server error.

POST /login

  • Description: Logs in an existing user.
  • Request:
{
  "email": "string",
  "password": "string"
}
  • Response:
    • 200 OK: Returns the token and user data.
{
  "token": "string",
  "user": {
    "_id": "string",
    "username": "string",
    "email": "string"
  }
}
  • 404 Not Found: User or password is incorrect.
{
  "message": "User not found or incorrect password"
}
  • 500 Internal Server Error: Server error.

POST /logout

  • Description: Logs out a user and invalidates their token.
  • Request:
{
  "token": "string"
}
  • Response:
    • 200 OK: Logout successful.
{
  "message": "Logged out successfully"
}
  • 400 Bad Request: Token is required.
{
  "message": "Token is required"
}
  • 500 Internal Server Error: Server error.

πŸ“ Post Management

GET /posts

  • Description: Retrieves all registered posts.
  • Response:
    • 200 OK: List of posts.
{
  "posts": [
    {
      "_id": "string",
      "title": "string",
      "content": "string",
      "author": {
        "_id": "string",
        "username": "string"
      },
      "tags": ["string"]
    }
  ]
}
  • 500 Internal Server Error: Server error.

POST /posts

  • Description: Creates a new post.
  • Request:
{
  "title": "string",
  "message": "string",
  "user": {
    "_id": "string"
  },
  "tags": ["string"]
}
  • Response:
    • 200 OK: Post created successfully.
{
  "post": {
    "_id": "string",
    "title": "string",
    "content": "string",
    "author": "string",
    "tags": ["string"]
  }
}
  • 404 Not Found: User not found.
{
  "message": "User not found"
}
  • 500 Internal Server Error: Server error.

πŸ” Security Middleware

Token Blacklist

  • Description: Middleware to check if the token is blacklisted.
  • Error:
    • 401 Unauthorized: Token is blacklisted.
{
  "message": "Token is blacklisted"
}

πŸš€ Startup

Server

  • Port: 8080
  • Message: app running on port 8080

πŸ“œ License

This project is licensed under the MIT License. πŸ“


🎯 Vision

With Infinite Voices, we aim to:

  • Create a platform that fosters real-time communication ⚑.
  • Deliver unmatched scalability 🌱 to support millions of users.
  • Provide an engaging and intuitive user experience 🀝.
**Join us in building the future of interactive forums! πŸš€**  

Image

About

Infinite Voices is a creative project focused on exploring the endless potential of expression through storytelling, art, and technology. It seeks to amplify diverse perspectives, blending innovation with emotion to craft

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published