{"id":23145836,"url":"https://github.com/ajmalfaris11/ajus-elearning-server","last_synced_at":"2026-02-24T16:48:04.822Z","repository":{"id":265130527,"uuid":"894986503","full_name":"ajmalfaris11/AJUs-Elearning-Server","owner":"ajmalfaris11","description":"Backend server for the AJUs-Elearning platform, built with Node.js, Express, and MongoDB. Implements user authentication, course management, assignments, and real-time features with Redis caching and TypeScript support.","archived":false,"fork":false,"pushed_at":"2025-01-25T14:43:11.000Z","size":10271,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-07T22:07:44.181Z","etag":null,"topics":["api","authentication","backend","cookie-parser","cors","ejs-templates","elearning","express","full-stack","jwt","learning-dashboard","mongodb","mongoose","nodejs","redis","rest-api","typescript","typescript-development","web-development"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ajmalfaris11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-27T11:05:07.000Z","updated_at":"2025-01-25T14:43:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"3986cc92-078b-4f43-8b79-2d78bfef3162","html_url":"https://github.com/ajmalfaris11/AJUs-Elearning-Server","commit_stats":null,"previous_names":["ajmalfaris11/ajus-elearning-server"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajmalfaris11%2FAJUs-Elearning-Server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajmalfaris11%2FAJUs-Elearning-Server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajmalfaris11%2FAJUs-Elearning-Server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajmalfaris11%2FAJUs-Elearning-Server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajmalfaris11","download_url":"https://codeload.github.com/ajmalfaris11/AJUs-Elearning-Server/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252961837,"owners_count":21832196,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","authentication","backend","cookie-parser","cors","ejs-templates","elearning","express","full-stack","jwt","learning-dashboard","mongodb","mongoose","nodejs","redis","rest-api","typescript","typescript-development","web-development"],"created_at":"2024-12-17T16:16:46.791Z","updated_at":"2026-02-24T16:48:04.748Z","avatar_url":"https://github.com/ajmalfaris11.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **AJUs-Elearning-Server**\n\n## **Project Description**\n\nThe **AJUs-Elearning-Server** is the backend server for the **AJUs-Elearning** platform, built using the **MERN** stack (MongoDB, Express.js, React.js, Node.js). The server handles core functionalities such as user authentication, course management, assignments, real-time features with Redis caching, and more. The backend is built with **TypeScript** for type safety and better maintainability.\n\n## **Tech Stack**\n\n- **Node.js**: JavaScript runtime for building scalable server-side applications.\n- **Express.js**: Web framework for building RESTful APIs and handling HTTP requests.\n- **MongoDB**: NoSQL database for storing user, course, and learning data.\n- **Mongoose**: ODM (Object Data Modeling) library for MongoDB.\n- **JWT (JSON Web Tokens)**: For user authentication and authorization.\n- **Redis**: Caching layer for improving performance and real-time data features.\n- **TypeScript**: Provides type safety and enhances code quality and development speed.\n- **bcryptjs**: For securely hashing and verifying passwords.\n- **cookie-parser**: Middleware for parsing cookies.\n- **dotenv**: For managing environment variables.\n- **cors**: Middleware to enable Cross-Origin Resource Sharing (CORS) for your APIs.\n\n## **Installed Dependencies**\n\nThe following dependencies have been installed for the project:\n\n- **bcryptjs**: A library for hashing passwords securely.\n- **cookie-parser**: Middleware for parsing cookies in the server.\n- **cors**: Middleware for enabling Cross-Origin Resource Sharing.\n- **dotenv**: Loads environment variables from a `.env` file.\n- **express**: A minimal and flexible Node.js web application framework.\n- **ioredis**: Redis client for connecting and interacting with Redis.\n- **jsonwebtoken**: A library for implementing JSON Web Tokens for secure authentication.\n- **mongoose**: MongoDB object modeling for Node.js.\n- **ts-node-dev**: TypeScript development server for faster reloading.\n- **@types/* packages**: Type definitions for TypeScript, including `bcryptjs`, `cookie-parser`, `cors`, `express`, `jsonwebtoken`, and `node`.\n- **typescript**: Superset of JavaScript for adding type safety to the code.\n\n## **Features**\n\n- **User Authentication**: Secure login and registration using **JWT**.\n- **Course Management**: Admins and educators can create, update, and manage courses.\n- **Assignments \u0026 Tasks**: Educators can create assignments and tasks for learners, and learners can submit them.\n- **Study Plans**: Educators can create study plans, and learners can view their progress.\n- **Real-Time Features**: Real-time communication and doubt clarification via **Redis**.\n- **Email Notifications**: Automated email responses for task submissions, evaluations, and updates.\n- **Admin Panel**: For managing users, courses, assignments, and monitoring progress.\n- **TypeScript Support**: Fully typed backend using **TypeScript** for better code safety and maintainability.\n\n## **Setup Instructions**\n\n### **Clone the Repository**\n```bash\ngit clone https://github.com/your-username/AJUs-Elearning-Server.git\ncd AJUs-Elearning-Server\n```\n\n### **Install Dependencies**\nInstall the required dependencies with npm:\n```bash\nnpm install\n```\n\n### **Environment Variables**\nCreate a `.env` file in the root directory and add the following environment variables:\n\n```plaintext\nMONGO_URI=your-mongodb-connection-string\nJWT_SECRET=your-jwt-secret-key\nPORT=5000\nREDIS_HOST=your-redis-host\nREDIS_PORT=your-redis-port\n```\n\n### **Start the Server**\nAfter installing dependencies and configuring the environment variables, run the server:\n\n```bash\nnpm start\n```\n\nThe server will run on **http://localhost:5000** by default.\n\n## **Usage**\n\n- The server exposes a set of RESTful APIs for handling authentication, courses, assignments, and more.\n- It is designed to integrate seamlessly with a React.js frontend to build a full-stack **Learning Dashboard** platform.\n- The backend utilizes **Redis** for caching and performance optimization.\n\n## **Contributing**\n\nWe welcome contributions to enhance the features and improve the performance of the AJUs-Elearning platform. To contribute:\n\n1. Fork the repository\n2. Create a new branch (`git checkout -b feature-name`)\n3. Commit your changes (`git commit -am 'Add new feature'`)\n4. Push to your branch (`git push origin feature-name`)\n5. Create a new Pull Request\n\n## **License**\n\nThis project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.\n\n## **Acknowledgments**\n\n- **Express.js** for simplifying the API development.\n- **MongoDB** and **Mongoose** for managing data in the backend.\n- **Redis** for enhancing performance through caching and real-time capabilities.\n- **JWT** for secure authentication.\n- **TypeScript** for ensuring code safety and better maintainability.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajmalfaris11%2Fajus-elearning-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajmalfaris11%2Fajus-elearning-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajmalfaris11%2Fajus-elearning-server/lists"}