Skills & Technologies Used
Welcome to Coursis, the ultimate time-saving solution for students everywhere. As a solo developer passionate about solving real-world problems, I have designed Coursis to aid students in managing not just their schedules, but their overall academic life effortlessly.
Coursis is a free platform built entirely by me to help students organize their academic journey. While the primary feature focuses on creating class schedules, Coursis is designed to be more than just a scheduling tool. It is a comprehensive academic aid, with new features on the way to help students manage other aspects of their academic life as well.
Below is an overview of the skills, technologies, and algorithms that power Coursis:
Technologies Used:- Main Language: TypeScript is used throughout the project to ensure type safety and reduce runtime errors
- Frontend: Next.js and React for a dynamic, user-friendly interface
- Styling: SCSS for responsive and scalable styling
- Component Libraries: Material UI for consistent and modern UI components
- Backend: Next.js API routes for server-side logic
- Database: Firebase for storing user data and schedules
- Version Control: Git and GitHub for collaborative version tracking and deployment
- Deployment: Vercel for fast and reliable hosting of the platform
Skills Applied:- Full-Stack Development: Implementing both client-side and server-side features to build a complete application
- UI/UX Design: Crafting an intuitive user experience that balances functionality with aesthetics
- Algorithm Development: Developing a scheduling algorithm that generates non-conflicting schedules from user preferences
- Optimization: Implementing performance improvements for fast schedule generation and seamless user interaction
Core Algorithms and Data Structures:- Schedule Generation: An algorithm that analyzes user preferences, such as course availability, professor selection, and time constraints, to generate optimal schedules without conflicts
- Conflict Detection: Automatically identifies and resolves schedule overlaps between courses
- Dijkstra's Algorithm: Implemented for optimal path-finding in certain scheduling scenarios to minimize time between classes and avoid conflicts
- Data Structures: The platform uses custom implementations of Graphs, Linked Lists, Binary Search Trees, and Modified Nodes for various operations related to schedule management and room reservation
Coursis also features a schedule comparison tool, allowing users to share and compare their schedules with friends, and a classroom availability feature to check when certain rooms are free. While the platform continues to evolve, new features are on the way to assist students in managing more aspects of their academic lives.
Please note that Coursis is a work in progress, and I greatly appreciate your feedback and support as I work to improve the platform.