Giter Club home page Giter Club logo

tizisdeepan / eventscalendar Goto Github PK

View Code? Open in Web Editor NEW
219.0 6.0 42.0 1022 KB

Events Calendar is a user-friendly library that helps you achieve a cool Calendar UI with events mapping. You can customise every pixel of the calendar as per your wish and still achieve in implementing all the functionalities of the native android calendar in addition with adding dots to the calendar which represents the presence of an event on the respective dates. It can be done easily, you are just a few steps away from implementing your own badass looking Calendar for your very own project!

License: Apache License 2.0

Kotlin 100.00%
android kotlin-android calendar calendar-view calendar-component calendar-events java

eventscalendar's Introduction

Events Calendar

License

Single Selection Mode Range Selection Mode Multiple Selection Mode
Single Selection Mode Range Selection Mode Multiple Selection Mode

What is Events Calendar?

Events Calendar is a user-friendly library that helps you achieve a cool Calendar UI with events mapping. You can customise every pixel of the calendar as per your wish and still achieve in implementing all the functionalities of the native android calendar in addition with adding dots to the calendar which represents the presence of an event on the respective dates. Events Calendar also has multi-lingual support. You are just a few steps away from implementing your own badass looking Calendar for your very own project!

Implementation

[1] In your app module gradle file

dependencies {
    implementation 'com.github.tizisdeepan:eventscalendar:1.6.1'
}

[2] In your project level gradle file

allprojects {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

[3] Use EventsCalendar in your layout.xml

<com.events.calendar.views.EventsCalendar
    android:id="@+id/eventsCalendar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#000000"
    android:overScrollMode="never"
    app:datesTextSize="16sp"
    app:eventDotColor="#ff0000"
    app:isBoldTextOnSelectionEnabled="true"
    app:monthTitleColor="#ffffff"
    app:monthTitleTextSize="16sp"
    app:primaryTextColor="#c4c4c4"
    app:secondaryTextColor="#666666"
    app:selectedTextColor="#000000"
    app:selectionColor="#ffe600"
    app:weekHeaderColor="#c6c6c6"
    app:rangeSelectionColor="#ffe600"
    app:rangeSelectionStartColor="#c1ae01"
    app:rangeSelectionEndColor="#c1ae01"
    app:weekHeaderTextSize="16sp" />

[4] Implement EventCalendar.Callback on your Activity/ Fragment

class MainActivity : AppCompatActivity(), EventsCalendar.Callback {
    ...
    override fun onDayLongPressed(selectedDate: Calendar?) {
        Log.e("LONG", "CLICKED")
    }
    
    override fun onMonthChanged(monthStartDate: Calendar?) {
        Log.e("MON", "CHANGED")
    }

    override fun onDaySelected(selectedDate: Calendar?) {
        Log.e("SHORT", "CLICKED")
    }
}

[5] Create instances and set default values for the EventsCalendar in your Activity/ Fragment

eventsCalendar.setSelectionMode(eventsCalendar.MULTIPLE_SELECTION) //set mode of Calendar
              .setToday(today) //set today's date [today: Calendar]
              .setMonthRange(start, end) //set starting month [start: Calendar] and ending month [end: Calendar]
              .setWeekStartDay(Calendar.SUNDAY, false) //set start day of the week as you wish [startday: Int, doReset: Boolean]
              .setCurrentSelectedDate(today) //set current date and scrolls the calendar to the corresponding month of the selected date [today: Calendar]
              .setDatesTypeface(typeface) //set font for dates
              .setDateTextFontSize(16f) //set font size for dates
              .setMonthTitleTypeface(typeface) //set font for title of the calendar
              .setMonthTitleFontSize(16f) //set font size for title of the calendar
              .setWeekHeaderTypeface(typeface) //set font for week names
              .setWeekHeaderFontSize(16f) //set font size for week names
              .setCallback(this) //set the callback for EventsCalendar
              .addEvent(c) //set events on the EventsCalendar [c: Calendar]
              .disableDate(dc) //disable a specific day on the EventsCalendar [c: Calendar]
              .disableDaysInWeek(Calendar.SATURDAY, Calendar.SUNDAY) //disable days in a week on the whole EventsCalendar [varargs days: Int]
              .build()

[6] You can change selection mode of the calendar as you wish

eventsCalendar.setSelectionMode(eventsCalendar.SINGLE_SELECTION)

Available Selection modes are,

  1. SINGLE_SELECTION -> can select single day at a time
  2. RANGE_SELECTION -> can select range of days at a time
  3. MULTIPLE_SELECTION -> can select multiple days at a time (not necessary that the selected days be consequtive)

Documentation

XML Kotlin/Java Description
app:primaryTextColor setPrimaryTextColor(color: Int) Primary Text color of the calendar (selectable dates)
app:secondaryTextColor setSecondaryTextColor(color: Int) Secondary Text color of the calendar (disabled dates)
app:selectedTextColor setSelectedTextColor(color: Int) Text color of the Selected date
app:selectionColor setSelectionColor(color: Int) Color for the Selection Circle
app:rangeSelectionColor setRangeSelectionColor(color: Int) Color for the Selection Background
app:rangeSelectionStartColor setRangeSelectionStartColor(color: Int) Color for the Range Start Selection Background
app:rangeSelectionEndColor setRangeSelectionEndColor(color: Int) Color for the Range End Selection Background
app:weekHeaderColor setWeekHeaderColor(color: Int) Text color for the Week Header labels
app:weekHeaderTextSize setWeekHeaderFontSize(size: Float) Text size for the Week Header labels
app:datesTextSize setDateTextFontSize(size: Float) Text size for the Date labels
app:monthTitleColor setMonthTitleColor(color: Int) Text color for the Month Title in the calendar view
app:monthTitleTextSize setMonthTitleFontSize(size: Float) Text size for the Month Title in the calendar view
app:eventDotColor setEventDotColor(color: Int) Color for the Event Dots marked in the calendar view
app:isBoldTextOnSelectionEnabled setIsBoldTextOnSelectionEnabled(isEnabled: Boolean) Sets whether the dates should be highlighted or not

Voila! You have implemented an awesome Events Calendar for your Android Project now!

Developed By

Follow me on Twitter Add me to Linkedin

eventscalendar's People

Contributors

antoxa2584x avatar dastaniqbal avatar deepan5901 avatar tizisdeepan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

eventscalendar's Issues

How to call dot by selected event?

Hi guys. I am trying to create a point while holding or simply clicking on a date by putting eventsCalendar.addEvents (Calendar.getInstance ()) inside onDaySelected. But this returns the wrong points and only in 1 month.
Please, tell me that's wrong. Which code do you use?

Can we Disable Multiple Date at once.

We can select only one date using disableDate(),
here last date which we pass is disable, but not the previous one.

example:
for (Calendar date :AVAILABLE_DATE_LIST) {
eventsCalendar.disableDate(date);
}
here only last date is disable not all date from list.

Question : How can we disable all the date from the list "AVAILABLE_DATE_LIST" ?

How I can select past date.

How can I enable select the past date.
I have already set the mindate as last year but i still cant select the date before today

app:eventDotColor, app:eventDotColor doesnt work on Android 11

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Add custom header for month calendar

Thank you for your good library.
I implemented your library by adding app module gradle file.
How can I custom header of month calendar? such as:

  • set text month title in center horizontal
  • add button next (to left of text month title) and previous (to right of text month title) month (and how to set click on them to scroll next or previous month?)

Different event dot colors possible?

I'm looking for a way to display different event points in different colors.

For example:
06/28/2022 -> Green dot
06/29/2022 -> Red dot

I wish I could show a different color for each service, like in this example:

for (service in services!!)
{
val parser = SimpleDateFormat("dd.MM.yyyy hh:mm")
val dayFormatter = SimpleDateFormat("d")
val monthFormatter = SimpleDateFormat("M")
val yearFormatter = SimpleDateFormat("yyyy")
val day = dayFormatter.format(parser.parse(service.from)).toInt()
val month = monthFormatter.format(parser.parse(service.from)).toInt() - 1
val year = yearFormatter.format(parser.parse(service.from)).toInt()
val color = Color.parseColor("#" + service.shift!!.shiftColor)

            val c = Calendar.getInstance()
            c.set(Calendar.MONTH, month)
            c.set(Calendar.DAY_OF_MONTH, day)
            c.set(Calendar.YEAR, year)

            calendarView.setEventDotColor(color = color)
            calendarView.addEvent(c)

}

However, I have only found out that the event color can be set for the entire calendar.

SINGLE_SELECTION' has private access in 'com.events.calendar.views.EventsCalendar

Set SINGLE SELECTION shows 'SINGLE_SELECTION' has private access in 'com.events.calendar.views.EventsCalendar' as error. Is there anything wrong with the code below.

Also, if I remove this line ' .setSelectionMode(EventsCalendar.SINGLE_SELECTION)', the '.addEvent(cal)' prevents the Calender from building.

Can you please explain this

eventsCalendar.setCallback(this)
.setToday(Calendar.getInstance())
.setMonthRange(minMonth, maxMonth)
.setCurrentSelectedDate(Calendar.getInstance())
.setSelectionMode(EventsCalendar.SINGLE_SELECTION)
.addEvent(cal)
.build();

How can I disable dates range?

Is there any way to disable dates range? foe example between 23/5 to 26/5?

As I see currently you can do this only by specific date.

Thanks

In fragment its not working properly

Seems like in fragment its not working properly, whenever I subtract year in calendar for DateRange its show unexpected result, I don't know why its shows 2039 or previous month July 2019

val start = DateTimeUtils.CalendarInstance()
start.add(Calendar.YEAR, -10)

val end = DateTimeUtils.CalendarInstance()
end.add(Calendar.YEAR, 20)

eventsCalendar.setMonthRange(start, end)

but its work in activity. I am using Jetpack Navigation component, and when calendar fragment is start fragment then its work, but when I put directions or navigate() to calendar fragment from other fragment then the behavior is unpredictable.

Using add event calendar from background will lead to not showing the red dots

I am using your library within an API call that returns all of my events during a specific month.

The API call takes place in the background and if I add the events there red dots will not show, even if use runOnUIThread{}.

Here is a peace of my code to show my issue.

getEventsPromise(month) success {
            try {

                activity?.runOnUiThread {
                    setCalendarEvents(
                        2019,
                        9,
                        2019
                    )
                }
            } catch (e: Exception) {
                
            }
        } fail {
            
        }
 private fun setCalendarEvents(year: Int, month: Int, day: Int) {
        val currentDateCalendar = Calendar.getInstance()

        val calendarInstance = Calendar.getInstance()
        calendarInstance.set(year, month, day)

        val timeDifference =
            calendarInstance.get(Calendar.DAY_OF_MONTH) - currentDateCalendar.get(Calendar.DAY_OF_MONTH)

        val eventCalendar = Calendar.getInstance()
        eventCalendar.add(Calendar.DAY_OF_MONTH, timeDifference)

        //calendarLib is the reference of EventsCalendar
        calendarLib.addEvent(eventCalendar)
    }

These are the code I am trying to use with no success.
I try "setCalendarEvents" this function outside the API call functions and it works fine the dots is shows as it should be.
Please assist.
And thank you in advance.

Unable to Add Events

Describe the bug
Adding events not working. eventsCalendar.getDotsForMonth(c) return null

To Reproduce
val c = Calendar.getInstance() c.add(Calendar.DAY_OF_MONTH, 3) eventsCalendar.addEvent(c)

Expected behavior
show event on calender

Color for specific date

A great enhancement would be the possibility to add special color to specific dates, holidays eg.

Great job congrats

Single selection bug

When on single selection the selection does not highlight automatically

To Reproduce
Steps to reproduce the behavior:

  1. eventsCalendar.setSelectionMode(eventsCalendar.SINGLE_SELECTION)
  2. Run the app and select a date

Expected behavior
Ideally, the selected date should be highlighted automatically.

Additional context
I went through the EventsCalendar.kt and on 'setCurrentSelectedDate' function the 'SINGLE_SELECTION' option is missing the reset() and refreshTodayDate() functions

Show selected dates

Can i show multiple dates selected like i opened calendar class and i want to show multiple dates selected and also on click that dates i want to deselect that dates.

Thank you

Disable selection

Hello,

Is it possible to disable user click on date ? For instance with setSelectionMode(eventsCalendar.NO_SELECTION)

It would be very great
Thanks

how to diable the scrool on event view pager

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Date Range Selection

Date Range Selection Mode to be implemented which helps to select a range of dates in the Events Calendar.

Selected date disable after click

When I click on a date and go to next view after I came back the selected date become disable and event dot becomes white. how can I solve this problem. Anyone can help me?

Multiple event dots not shown on single date

Is your feature request related to a problem? Please describe.
I want to add dots according to number of event on a date. e.g if I have 2 events on 2022-01-11 then 2 dots shown below the date.

Describe the solution you'd like
Event Dots are shown according to number of event on that date.

kotlin.UninitializedPropertyAccessException: lateinit property mDotsMap has not been initialized

kotlin.UninitializedPropertyAccessException: lateinit property mDotsMap has not been initialized

Just copy pasted xml code to my layout

<com.events.calendar.views.EventsCalendar
        android:id="@+id/calendarView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#000000"
        android:overScrollMode="never"
        app:eventDotColor="#ff0000"
        app:isBoldTextOnSelectionEnabled="true"
        app:monthTitleColor="#ffffff"
        app:primaryTextColor="#c4c4c4"
        app:secondaryTextColor="#666666"
        app:selectedTextColor="#000000"
        app:selectionColor="#ffe600"
        app:weekHeaderColor="#c6c6c6"
        app:rangeSelectionColor="#ffe600"
        app:rangeSelectionStartColor="#c1ae01"
        app:rangeSelectionEndColor="#c1ae01" />

kotlin.UninitializedPropertyAccessException: lateinit property mDotsMap has not been initialized
at com.events.calendar.utils.Events.getDotsForMonth(Events.kt:60)
at com.events.calendar.utils.Events.getDotsForMonth(Events.kt:58)
at com.events.calendar.views.DatesGridLayout.getDotsData(DatesGridLayout.kt:130)
at com.events.calendar.views.DatesGridLayout.init(DatesGridLayout.kt:97)
at com.events.calendar.views.DatesGridLayout.(DatesGridLayout.kt:83)
at com.events.calendar.views.MonthView.setMonthGridLayout(MonthView.kt:141)
at com.events.calendar.views.MonthView.init(MonthView.kt:91)
at com.events.calendar.views.MonthView.(MonthView.kt:79)
at com.events.calendar.adapters.MonthsAdapter.instantiateItem(MonthsAdapter.kt:34)
at androidx.viewpager.widget.ViewPager.addNewItem(ViewPager.java:1010)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1158)
at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
at com.events.calendar.views.EventsCalendar.onMeasure(EventsCalendar.kt:111)
at android.view.View.measure(View.java:22071)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6602)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:22071)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.measureChildWithMargins(RecyclerView.java:9119)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1583)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4194)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at androidx.swiperefreshlayout.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:625)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
E: at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
at com.android.internal.policy.DecorView.onLayout(DecorView.java:761)
at android.view.View.layout(View.java:19659)
at android.view.ViewGroup.layout(ViewGroup.java:6075)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2496)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2212)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1392)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6752)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
at android.view.Choreographer.doCallbacks(Choreographer.java:723)
at android.view.Choreographer.doFrame(Choreographer.java:658)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • android emulator
  • OS: Android 8.1.0
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Different event colors possible?

I'm looking for a way to display different event points in different colors.

For example:
06/28/2022 -> Green dot
06/29/2022 -> Red dot

I wish I could show a different color for each service, like in this example:

  for (service in services!!)
  {
                  val parser = SimpleDateFormat("dd.MM.yyyy hh:mm")
                  val dayFormatter = SimpleDateFormat("d")
                  val monthFormatter = SimpleDateFormat("M")
                  val yearFormatter = SimpleDateFormat("yyyy")
                  val day = dayFormatter.format(parser.parse(service.from)).toInt()
                  val month = monthFormatter.format(parser.parse(service.from)).toInt() - 1
                  val year = yearFormatter.format(parser.parse(service.from)).toInt()
                  val color = Color.parseColor("#" + service.shift!!.shiftColor)
  
                  val c = Calendar.getInstance()
                  c.set(Calendar.MONTH, month)
                  c.set(Calendar.DAY_OF_MONTH, day)
                  c.set(Calendar.YEAR, year)
  
                  calendarView.setEventDotColor(color = color)
                  calendarView.addEvent(c)
  }

However, I have only found out that the event color can be set for the entire calendar.

How to add events using array of string

hiii, i like the way you design the calendar, we have a array of string containing dates. how to add in your calendar the array of strings.. appreciate your help in advance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.